0
我有一些Haskell代碼,需要寫下最左邊最裏面(按值調用)和最(調用 - 名):找到最外層的評價(哈斯克爾)
second :: [Int] -> Int
second [] = 0
second (_:[]) = 0
second (_:x:xs) = x
doubleEach :: [Int] -> [Int]
doubleEach [] = []
doubleEach (x:xs) = x * 2 : (doubleEach xs)
repeat :: Int -> Int -> [Int]
repeat x n = if n > 0 then x : (repeat x (n-1)) else []
repeat (second (doubleEach [2,3,5])) (second [3, 1, 4])
最裏面(調用 - 值):
1. repeat (second (doubleEach [2,3,5])) (second [3,1,4])
2. repeat (second 4 : doubleEach [3,5])) (1)
3. repeat (second (4 : 6 : d [5])) (1)
4. repeat (second (4 : 6 : 10)) (1)
5. repeat (6) (1)
6. [6]
問題:我怎樣才能得到最外層(調用 - 名)一步evalua撲進重刑?我不明白我如何能夠做到這一點,如果重複需要指定值的工作,他們不會給予,直到內部沒有評估。
這是很不清楚你想要什麼,你想壓縮一些字符串?請向我們展示完整的預期產出。 –
每個程序都可以按值調用和按名稱策略運行。我不明白如何編寫程序爲按名稱策略運行的步驟。我希望我的意思更清楚。 – jublikon
這不是真的哈斯克爾。我甚至不確定它確實屬於Stackoverflow ...也許cs.stackexchange? – Alec