【发布时间】:2015-04-02 00:23:26
【问题描述】:
我尝试通过列表中的索引来实现自己的安全搜索元素。 我认为,我的函数必须有这个签名:
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 的直觉是错误的。
【问题讨论】: