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