[英]How do you define a variadic function in a Chicken Scheme module?
這是Chicken Scheme中的錯誤嗎?
#;1> (define (foo x . y) x)
#;2> (foo 1 2 3)
1
#;3> (module bar (import scheme chicken) (define (foo x . y) x))
Error: invalid syntax in macro form: (foo x . y)
Call history:
<syntax> (module bar (import scheme chicken) (define (foo x . y) x))
<syntax> (##core#module bar (import scheme chicken) (define (foo x . y) x))
<syntax> (define (foo x . y) x)
<syntax> (foo x . y) <--
您的模塊語法缺少要從模塊導出的符號列表。 嘗試這個:
#1;> (module bar (foo) (import scheme chicken) (define (foo x . y) x))
#2;> (import bar)
#3;> (foo 1 2 3)
1
聲明模塊名稱后,請注意(foo)。
我將添加郵件列表和irc頻道(在freenode上的#chicken)非常活躍。 如果您對雞肉有疑問,那么它們是回答它們的最佳場所。
可變參數函數的點( .
)語法在模塊之間不可用; 它在scheme
模塊中。 創建自定義模塊時,必須顯式導入scheme
模塊以重新啟用可變參數功能。
#1;> (module bar (foo) (import scheme chicken) (define (foo x . y) x))
#2;> (import bar)
#3;> (foo 1 2 3)
1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.