Racket’te (ve genel olarak Lisp’lerde) yeniyim ve bir komut dosyasının komut satırından çalıştırıldığını tespit etmenin kanonik bir yolu olup olmadığını merak ediyorum. Aşağıdaki Raket koduna sahip varsayalım, ben respond
istiyorum, ŞimdiScript komut dosyasının Racket'te yürütülüp yürütülmediğini tespit etme?
def foo():
"foo!"
if __name__ == "__main__":
foo()
yalnızca çağırılacak:
Örneğin, Pythonyapmak standart yolu bu şekilde if __name__ == __main__:
ile olacağını Bu bir komut dosyası olarak çalıştırılır.
#lang racket
(require racket/cmdline)
(define hello? (make-parameter #f))
(define goodbye? (make-parameter #f))
(command-line #:program "cmdtest"
#:once-each
[("-H" "--hello") "Add Hello Message" (hello? #t)]
[("-G" "--goodbye") "Add goodbye Message" (goodbye? #t)])
(define (respond)
(printf "~a\n"
(apply string-append
(cond
[(and (hello?) (goodbye?)) '("Hello" " and goodbye.")]
[(and (hello?) (not (goodbye?))) '("Hello." "")]
[(and (not (hello?)) (goodbye?)) '("" "Goodbye.")]
[else '("" "")]))))
İstediğim şeyi elde etmenin kolay/standart bir yolu var mı?