Modulinos: Difference between revisions

Changed "Chicken Scheme" to "Scheme"
(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>
 
=={{header|Chicken Scheme}}==
{{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}}==