我试图通过列表中的索引实现自己的安全搜索元素。 我认为,我的功能必须有此签名:使用foldr查找列表的第K个元素
safe_search :: [a] -> Int -> Maybe a
safe_search xs n = foldr iteration init_val xs n
iteration = undefined
init_val = undefined
我有问题,实现迭代。我认为,它必须是这样的:
safe_search :: [a] -> Int -> Maybe a
safe_search xs n = foldr iteration init_val xs n
where
iteration :: a -> (Int -> [a]) -> Int -> a
iteration x g 0 = []
iteration x g n = x (n - 1)
init_val :: Int -> a
init_val = const 0
但它有很多错误。我对haskell的直觉是错误的。
谢谢大家帮忙。 – David 2015-04-02 06:11:58