私は現在Schemeを調べていますが、私が理解している方法では、任意の数の引数を取ることができます。Scheme - オプションの引数とデフォルト値
私はこれを使って遊んでいますが、私はそのコンセプトを理解するのに苦労しています。
たとえば、ユーザーから提供された情報に基づいてウェルカムメッセージを書きたいとします。
ユーザーは、プログラムの叫び書き込みを最初と最後の名前を提供している場合:私は、次のしている
Welcome, Anonymous Person!
:
Welcome, <FIRST> <LAST>!
;; <FIRST> = "Julius", <LAST>= "Caesar"
Welcome, Julius Caesar!
そうでなければ、プログラムはとして指定されたデフォルト値、を参照してください私のコードの概要ですが、これを仕上げる方法に苦しんでいます。
(define (welcome . args)
(let (('first <user_first>/"Anonymous")
('last <user_last>/"Person"))
(display (string-append "Welcome, " first " " last "!"))))
使用例:
(welcome) ;;no arguments
--> Welcome, Anonymous Person!
(welcome 'first "John") ;;one argument
--> Welcome, John Person!
(welcome 'first "John" 'last "Doe") ;;two arguments
--> Welcome, John Doe!
すべてのヘルプは高く評価されます!
を指定することができ、いずれの順序
私はそれに任意の数の引数を取るつもりはありませんでした。もしあなたがそれを必要とすれば '(define(welcome#:first first-name#:last last-name。rest-args)...) ' –