4
涉足伊德里斯,我試圖將this Haskell function移植到伊德里斯。我覺得我成功了,有了這個代碼...如何評估Idris交互中的遞歸函數?
windowl : Nat -> List a -> List (List a)
windowl size = loop
where
loop xs = case List.splitAt size xs of
(ys, []) => if length ys == size then [ys] else []
(ys, _) => ys :: loop (drop 1 xs)
然而,當我把它叫做互動伊德里斯,似乎只有在第一次調用到函數進行評估,在遞歸下一步是不是。這是我在控制檯上得到的。
*hello> windowl 2 [1,2,3,4,5]
[1, 2] :: Main.windowl, loop Integer 2 [2, 3, 4, 5] : List (List Integer)
有人能告訴我發生了什麼,我怎麼能完全評估功能?
東西或許應該將'size'爲零...... –
嬰兒學步,安東的情況下完成的:) – flq