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