我開始瞭解lambda
。有沒有可以用foldr
或foldl
與lambda
的方法嗎?有人能給我一個快速的例子嗎?感謝如何在計劃中使用foldr和lambda?
0
A
回答
4
要添加的3和4的平方,例如:
(foldl
(lambda (val res) (+ (sqr val) res))
0
'(3 4))
的初始值是0。對於列表中的每個值「(3 4),該函數被稱爲具有結合的值到val
,並將以前的結果綁定到res
。
這相當於
(define (fun val res)
(+ (sqr val) res))
(foldl fun 0 '(3 4))
不同之處在於在第一實施例的功能是匿名的。
0
基本上可以結合使用拉姆達與許多事情,包括與foldl和foldr相似,過濾器,地圖等(取決於你想要達到的,當然是什麼)。在這個例子中我們將使用foldr。
假設我們要計算這個列表中所有數字的總和:
(define list1 '(1 2 3))
的語法,用foldr和lambda會:
(foldr (lambda (x y) (+ x y)) 0 list1)
,其中:
- (拉姆達(XY)(+ XY))是我們的函數 (TW需要O參數x和y,並將它們添加)
- 爲基礎(這意味着我們從零做起,然後再添加x和y)
- 列表1是我們正在
基本上我們所做的是(+ 1(+ 2(+ 3 0)))數學
最後但並非最不重要的,這其中包括拉姆達整個foldr相似功能可縮短至
(foldr + 0 list1)
,它會幾乎做同樣的事情。
下面是另一個例子,試着找出自己是什麼它來測試你的概念的理解。
(foldr (lambda (x y) (append (list (add1 x)) y)) '() list1)
相關問題
- 1. 如何在計劃中使用foldr?
- 2. 在計劃中使用「和」
- 3. 計劃/ DrRacket - 地圖功能與foldr
- 4. 使用map和lambda計算dot-product計劃
- 5. 在計劃中使用lambda中的let變量
- 6. Lambda在計劃中遇到問題
- 7. 如何在計劃中使用「cond」?
- 8. 這個foldr中的lambda是什麼?
- 9. AWS Lambda Cron計劃錯誤
- 10. 在計劃中使用'define'
- 11. 使用boto3更新AWS Lambda API密鑰使用計劃
- 12. 如何在計劃中使用計數器
- 13. 如何使用foldr編寫此函數?
- 14. 如何使用foldr編寫insertionSort?
- 15. 在haskell中使用foldr實現插入
- 16. foldr如何工作?
- 17. 如何計劃
- 18. 計劃:從Let轉換到Lambda
- 19. 如何在Haskell中使用foldr實現刪除
- 20. 如何在Erlang中使用foldr實現foldl?
- 21. 如何使用Apache Ivy和FREE和BASE計劃?
- 22. 如何在Haskell中寫一個foldr HOFF
- 23. 如何使用PowerShell命令在Windows任務計劃程序中創建和計劃任務?
- 24. racket:(my-filter p lst)函數與lambda和foldr
- 25. 如何在計劃中使用缺點返回任何內容
- 26. 使用FOLDR(SML)的交替總和
- 27. 如何在Struts 1.3中規劃和設計Web應用程序?
- 28. 如何使用計劃方法
- 29. 如何使用任務計劃
- 30. 如何使用Laravel 5.1計劃?
[This answer](http://stackoverflow.com/a/19547771/1281433)描述_how_摺疊工作,並鏈接到一些其他答案,以及一些細節。 –