是否有任何方法將函數應用於元組成員作爲函數參數?或者,如果沒有,我可以用任意數量的參數創建一個函數,並且在它的主體中將一些另外的函數應用到「尾部」,因爲它是它的參數?在OCaml中展開元組
5
A
回答
7
在一般情況下,沒有。對於2個參數的情況,您可以使用Batteries extensions to Pervasives中的curry
和uncurry
函數。
它可能可以煮東西了與Obj
模塊,像printf
的內部做的,但我會留遠遠離那。困難在於類型系統不能給你一種表達廣義的curry
或uncurry
函數的類型。類型系統不允許您在元組的長度上「計算」 - 2元組是2元組,並且您無法用其他組件表示(a*b*c)
實際上是(a*b)
。 printf
得到編譯器的特別支持,使得類型能夠正常工作,並且它導致函數類型成爲格式類型的一部分(所以類似的解決方案不適用於元組)。
7
該語言本身不允許你在任意大小的元組上定義一個函數。
然而,通過遵循this folding technique(它在SML中描述,但在OCaml中同樣適用),可以使用任意數量的參數定義函數。
相關問題
- 1. 在OCaml中打印元組
- 2. 展開元組
- 3. Python,如何在lambda中展開元組?
- 4. OCaml匹配元組
- 5. Ocaml元組類型missunderstanding
- 6. Ocaml-遍歷一個元組
- 7. 在React中展開組件
- 8. 組合列表中的元素 - OCaml
- 9. 在OCaml中公開模塊擴展的私有類型
- 10. 在Ocaml中處理單元
- 11. ocaml的函數需要元組和元組列表中返回一個元組
- 12. 將元組展開爲嵌套列表
- 13. 將元組展開爲參數
- 14. 如何展開可選的元組元素到Scala中的選項元組?
- 15. 在android中展開摺疊單元格
- 16. 在模式中展開頁面元素
- 17. 插入元組進入ocaml的名單
- 18. 爲什麼喜歡在OCaml中捲曲元組參數?
- 19. 在PowerShell中展開的數組
- 20. 在Excel中展開數組大小
- 21. 組,然後在MongoDB中展開記錄
- 22. 在Angular2中展開可觀察數組
- 23. 在pymongo組聲明中展開列表
- 24. 在OCaml中分開一個列表
- 25. 期待型單元OCaml中
- 26. 展開組的展開式列表視圖,更改展開式組的圖像
- 27. 如何在收益中擴展元組?
- 28. OCaml在列表中插入元素
- 29. 元素在列表中的位置(OCaml)
- 30. 在Ocaml的'樹中添加元素