好吧,這可能聽起來像一個荒謬的問題,但你如何返回計劃列表?計劃如何創建列表
計劃如何創建列表
回答
您可能只需要:'(2 3 5 7 11)
或(list 2 3 5 7 11)
? (cons 2 (cons 3 '()))
下面是從一個函數返回一個列表的例子:
(define returnlist
(lambda(a b c)
(cons a (cons b (cons c '())))
))
(returnlist 2 3 4)
返回值將是列表
您也可以通過指定的元素,將其添加到列表構造列表:(list 2 3 4)
另一個不那麼衆所周知的方式做到這一點:
> ((lambda x x) 2 3 5 7 11)
(2 3 5 7 11)
也就是說,「列表」功能本身可以定義爲:
> (define list (lambda x x))
基礎上看到您的一些其他問題,我想你可能有讓你的頭上纏核心功能的概念麻煩語言如Scheme。
在您正在學習Scheme(新手)的級別中,您編寫的每個函數都有一個輸入和一個輸出,並且每個函數的主體都是單個表達式。函數返回表達式評估的值。沒有必要像在Java或C這樣的命令式語言中顯式「返回」任何東西;它只是評估表達式的直接後果。
函數的主體是單個表達式。它不像Java,其中一個方法的主體由一系列指令組成:
do this
then do that
then do something else
then return something (maybe)
Scheme函數計算單個表達式;而已。下面是一個簡單的函數,增加了5任何數目作爲參數被傳遞給:
(define (add5 x)
(+ x 5))
的功能的主體是(+ x 5)
,這僅僅是要被評估的表達式。插入x
的值,將+
(加法)函數應用於x
和5,並返回結果。
列表沒有太大的不同。所有你需要的是一個表達式,將構建一個列表。兩個已經提到:列表用於從頭創建一個列表,如果你已經擁有所有的元素; 缺點用於將單個元素添加到現有列表中,並且經常以遞歸方式使用。
下面是要消耗數n
並建立列表(n n-1 n-2 ... 0)
(define (makelist n)
(if (= n 0)
(list 0) ; base case. Just return (0)
(cons n (makelist (- n 1))))) ; recursive case. Add n to the head of (n-1 n-2 ... 0)
在鹼和遞歸情況下,兩個功能,一個列表是通過簡單地評估使用的列表建設功能之一表達式返回。
這是另一個例子。這一個使用我們add5
函數5添加到數字列表(LON)的每一個元素:
(define (add5list lon)
(if (null? lon)
`() ; base case: lon is empty. Return an empty list.
(cons (add5 (car lon)) (add5list (cdr lon))))) ; recursive case.
; Add 5 to the head of lon and prepend it to the tail of lon
同樣,基數和遞歸案件通過評估導致列表中的表達式返回列表。
要記住關於Scheme的關鍵是所有函數都返回一些東西,而某些東西只是評估表達式的結果。 Scheme函數的主體是單個表達式。
- 1. 計劃 - 列表
- 2. 如何在Autosys中創建優先隊列計劃?
- 3. 計劃 - 在列表
- 4. memsql創建功能計劃
- 5. 返回計劃列表
- 6. 計劃:遞歸和列表
- 7. 計劃通過列表
- 8. TSQL - 根據連續的計劃部分創建合併計劃
- 9. 如何創建計劃,如果他們不存在
- 10. 如何從列表中創建列表?
- 11. 如何創建列表的列表
- 12. 如何創建collections.Counter列表?
- 13. 如何創建列表
- 14. 如何創建類列表?
- 15. 如何創建ValueTuple列表?
- 16. 我怎樣才能使計劃表從表教官創建
- 17. 如何從另一個列表中創建數據計算列
- 18. 計劃 - 預計非空列表
- 19. 如何計劃
- 20. Braintree使用API創建計劃
- 21. 在計劃日期創建CloudKit記錄
- 22. HPQC C#創建測試計劃測試
- 23. 創建存儲過程的計劃
- 24. Wix 3.5創建計劃任務
- 25. 幫助創建計劃生成器
- 26. fttw3創建2D計劃部分失敗
- 27. 用於創建計劃任務的VBScript
- 28. 創建自定義URL計劃操作
- 29. 創建計劃作業SQL Datawarehouse
- 30. 創建計劃(BETA)似乎不工作
你可能會覺得這有幫助:http://www.r6rs.org/。大多數情況下它不是過於技術性的,可以回答許多這樣的問題。這是一個非常有用的指導,瞭解Scheme程序是如何製作Scheme中最常見的數據結構的。 – avpx 2010-03-30 01:08:50