1
A
回答
1
在Scheme中,函數是first-class citizens。因此,您可以將函數作爲參數傳遞給另一個函數,就像你與任何其他符號。沒有關於function
關鍵字
For exa mple,定義一個名爲map
接受一個函數作爲參數,並將其應用到列表中的每個成員函數,你可以使用:
(define (map f l)
(if (null? l)
l
(cons (f (car l)) (map f (cdr l)))))
然後,如果你有一個功能叫做add1
,你想傳遞給map
:
(define (add1 x)
(+ x 1))
(map add1 '(1 2 3))
其結果將是(2 3 4)
。
DEMO。
0
Scheme不允許您在函數定義中指定參數類型。你能做的最好的是
(define my-func(func . args)
,這將給你在FUNC參數的第一個參數和所有其餘的在列表中ARGS。然後,在將其應用於參數之前,您可以檢查** func **的類型(如果需要)。
(cond
((procedure? func) (func args))
(else (report some kind of error however you want)))
相關問題
- 1. 如何聲明一個Closure作爲函數參數
- 2. 聲明一個具有類構造函數作爲函數參數的函數
- 3. 如何聲明一個函數J作爲q的函數?
- 4. 使用函數聲明作爲參數
- 5. 如何聲明兩個函數將對方的簽名作爲參數?
- 6. JS函數聲明:在參數聲明
- 7. 如何用一個數組參數聲明一個函數?
- 8. 方案,函數列表作爲參數
- 9. 如何在匿名函數中將$ this聲明爲* use()*參數?
- 10. 用FILE聲明一個函數原型作爲參數
- 11. 我可以在PHP的另一個函數的參數中聲明一個函數嗎?
- 12. 與函數指針作爲參數函數聲明
- 13. 如何聲明一個可變模板函數作爲朋友?
- 14. 我們可以在函數內部聲明函數嗎?
- 15. 如何將一個接口數組聲明爲Typescript函數參數?
- 16. 函數參數聲明
- 17. JavaScript函數參數聲明
- 18. 這個構造函數爲什麼可以用一個參數聲明?
- 19. 我可以調用一個函數作爲參數嗎?
- 20. 我可以使用一個函數作爲參數嗎?
- 21. 我可以傳遞一個類的成員函數作爲函數參數嗎?
- 22. 我可以使一個函數接受通用函數作爲參數嗎?
- 23. 將typedef聲明爲函數
- 24. 如何轉發聲明一個將指針指向函數的函數作爲參數?
- 25. 我可以在Python中的函數中聲明一個類嗎?
- 26. 如何聲明接受通用AsyncTask作爲參數的函數
- 27. 我們可以聲明一個沒有參數的朋友函數嗎?
- 28. 以對象作爲參數的函數,作爲另一個函數的參數
- 29. 如何將參數聲明爲沒有返回值的函數?
- 30. 如何將特徵聲明爲隱式「構造函數參數」?
好的:你看到的錯誤是什麼?查看錯誤消息內容並查看是否有任何可理解的內容通常很有幫助。此外,請參閱http://www.ccs.neu.edu/home/matthias/HtDP2e/part_three.html以瞭解可以使用函數的函數的示例。 – dyoo
define:不是標識符,默認標識符,或過程參數的關鍵字:(x) – John
因此,編譯器試圖說在這一點上,定義中存在語法錯誤,它可能接近*(x)* 。見JoãoSilva的答案;他或她展示了一個例子。基本上,如果你正在寫一個帶參數的函數,不管這些參數是什麼,你都給每個參數一個普通的名字:沒有其他特殊的語法是必要的。 *(define(func arg1 arg2 ... argN)...)* *無論arg *是什麼類型的東西。 – dyoo