我從SICP瞭解了一些計劃,但現在對通用的lisp更感興趣。我知道普通lisp的fold
是reduce
,有左或右摺疊的特殊參數,但是相當於unfold
?谷歌搜索沒有多大幫助。事實上,我得到的印象是沒有展開的?「unfold」for common lisp?
9
A
回答
13
Common Lisp有(loop ... collect ...)
。比較
(loop for x from 1 to 10 collect (* x x))
使用unfold
其等價:
(unfold (lambda (x) (> x 10)) (lambda (x) (* x x)) (lambda (x) (+ x 1)) 1)
一般來說,(unfold p f g seed)
基本上是
(loop for x = seed then (g x) until (p x) collect (f x))
編輯:修正了錯字
3
通用lisp hyperspec沒有定義一個unfold
函數,但是你當然可以編寫自己的函數。它的方案定義爲符號翻譯幾乎符號。
+3
感謝。這是不幸的,但我想是的,我會寫我自己的。我真的很喜歡這樣純粹的計劃,擁有如此美麗的功能性善良,但我有點自to爲學習糾結而又富於表現力的共同誹謗。這有點像學習英語而不是世界語,你知道嗎? – nullpointer 2009-10-26 05:55:29
相關問題
- 1. Common Lisp a Lisp-n?
- 2. Common Lisp Loop Trouble
- 3. Common Lisp中
- 4. Common Lisp流?
- 5. Step Eval Common Lisp
- 6. Predicates Common Lisp
- 7. Common Lisp SublimeREPL
- 8. Common Lisp Binary Tree
- 9. Scheme或Common Lisp?
- 10. common lisp和emacs
- 11. 與Common Lisp中
- 12. Common Lisp Timer
- 13. Scheme vs Common Lisp
- 14. 關於Common Lisp中
- 15. asdf building和Common Lisp
- 16. Common Lisp弱引用?
- 17. 規則Common Lisp中
- 18. 如果Common Lisp中
- 19. 的#ifndef Common Lisp中
- 20. 使用的Common Lisp
- 21. 如何Common Lisp中
- 22. 替換Common Lisp中
- 23. (撰寫)在Common Lisp
- 24. Common Lisp錯誤不明白
- 25. 在ideone.com上運行Common Lisp?
- 26. Common Lisp中的Stackoverflow Mergesort
- 27. ltk(common lisp)的問題
- 28. (Random)in Common Lisp Not So Random?
- 29. 的Common Lisp讓結合
- 30. 子列表Common Lisp中
嗯,這很有趣。過去一個小時我一直在玩循環:P它的好東西!我喜歡編程語言有這些嵌入式子語言,它們有自己的語法和一套要理解的規則,比如格式化字符串。循環是強大的東西! – nullpointer 2009-10-26 20:47:14
歡迎來到黑暗之城。 – huaiyuan 2009-11-05 20:50:13