Anonymous user
Modulinos: Difference between revisions
Changed "Chicken Scheme" to "Scheme"
m (→{{header|Objective-C}}: modernize) |
(Changed "Chicken Scheme" to "Scheme") |
||
Line 141:
return 0;
}</lang>
=={{header|Chicken Scheme}}==▼
Chicken Scheme has the {{{ -ss }}} flag for the interpreter, but compiled Chicken Scheme programs do not have scripted main unless the behavior is added manually to the code.▼
scriptedmain.scm▼
<lang scheme>#!/bin/sh▼
#|▼
exec csi -ss $0 ${1+"$@"}▼
exit▼
|#▼
(use posix)▼
(require-extension srfi-1) ; lists▼
(define (meaning-of-life) 42)▼
(define (main args)▼
(display (format "Main: The meaning of life is ~a\n" (meaning-of-life)))▼
(exit))▼
(define (program)▼
(if (string=? (car (argv)) "csi")▼
(let ((s-index (list-index (lambda (x) (string-contains x "-s")) (argv))))▼
(if (number? s-index)▼
(cons 'interpreted (list-ref (argv) (+ 1 s-index)))▼
(cons 'unknown "")))▼
(cons 'compiled (car (argv)))))▼
(if (equal? (car (program)) 'compiled)▼
(main (cdr (argv))))</lang>▼
test.scm▼
<lang scheme>#!/bin/sh▼
#|▼
exec csi -ss $0 ${1+"$@"}▼
exit▼
|#▼
(define (main args)▼
(load "scriptedmain.scm")▼
(display (format "Test: The meaning of life is ~a\n" (meaning-of-life)))▼
(exit))</lang>▼
=={{header|Clojure}}==
Line 1,597 ⟶ 1,554:
List(42, 21, 64, 32, 16, 8, 4, 2, 1)
It has 9 elements.</pre>
{{Works with|Chicken Scheme}}
▲Chicken Scheme has the {{{ -ss }}} flag for the interpreter, but compiled Chicken Scheme programs do not have scripted main unless the behavior is added manually to the code.
▲scriptedmain.scm
▲<lang scheme>#!/bin/sh
▲#|
▲exec csi -ss $0 ${1+"$@"}
▲exit
▲|#
▲(use posix)
▲(require-extension srfi-1) ; lists
▲(define (meaning-of-life) 42)
▲(define (main args)
▲ (display (format "Main: The meaning of life is ~a\n" (meaning-of-life)))
▲ (exit))
▲(define (program)
▲ (if (string=? (car (argv)) "csi")
▲ (let ((s-index (list-index (lambda (x) (string-contains x "-s")) (argv))))
▲ (if (number? s-index)
▲ (cons 'interpreted (list-ref (argv) (+ 1 s-index)))
▲ (cons 'unknown "")))
▲ (cons 'compiled (car (argv)))))
▲(if (equal? (car (program)) 'compiled)
▲ (main (cdr (argv))))</lang>
▲test.scm
▲<lang scheme>#!/bin/sh
▲#|
▲exec csi -ss $0 ${1+"$@"}
▲exit
▲|#
▲(define (main args)
▲ (load "scriptedmain.scm")
▲ (display (format "Test: The meaning of life is ~a\n" (meaning-of-life)))
▲ (exit))</lang>
=={{header|Smalltalk}}==
|