【发布时间】:2014-07-25 15:08:53
【问题描述】:
我刚开始在 Haskell 中编程,我想创建一个函数,接收一个单词列表和一个字母列表,然后将其变成一个字母矩阵,就像单词搜索谜题一样,并返回该单词列表中的哪些单词出现在矩阵中以及出现的次数,以元组的形式返回这些信息。
我已经有了单词搜索的功能,我只是找不到写一个的方法 发生的次数。
我将不胜感激 :)
谢谢!
【问题讨论】:
标签: list haskell matrix tuples
我刚开始在 Haskell 中编程,我想创建一个函数,接收一个单词列表和一个字母列表,然后将其变成一个字母矩阵,就像单词搜索谜题一样,并返回该单词列表中的哪些单词出现在矩阵中以及出现的次数,以元组的形式返回这些信息。
我已经有了单词搜索的功能,我只是找不到写一个的方法 发生的次数。
我将不胜感激 :)
谢谢!
【问题讨论】:
标签: list haskell matrix tuples
这是一个你可以使用的函数:
find :: (Eq a, Enum e) => a -> [a] -> e
find _ [] = toEnum 0
find y (x:xs) = (if y == x then succ else id) $ find y xs
【讨论】:
find 3 [1,2,3] 抛出错误:“使用find 导致(Enum e0)没有实例。类型变量e0 不明确”
find 3 [1, 2, 3] :: Int,以便编译器知道要使用哪个 Enum 实例。
find :: Eq a => a -> [a] -> Int呢?
Int 将受到限制。如果你想使用惰性 peano 数字怎么办?还是无限Integer?或者你打算在浮点数计算中使用它?