List 单词在单词列表中出现的次数haskell
我刚开始在Haskell中编程,我想创建一个函数,获取一个单词列表和一个字母列表,然后转换成一个字母矩阵,就像一个单词搜索拼图,然后返回单词列表中的哪些单词出现在矩阵中,以及出现的次数,以元组的形式返回这些信息 我已经有了单词搜索的功能,只是找不到一种写单词的方法 发生的时间 我希望能得到一点帮助:)List 单词在单词列表中出现的次数haskell,list,haskell,matrix,tuples,List,Haskell,Matrix,Tuples,我刚开始在Haskell中编程,我想创建一个函数,获取一个单词列表和一个字母列表,然后转换成一个字母矩阵,就像一个单词搜索拼图,然后返回单词列表中的哪些单词出现在矩阵中,以及出现的次数,以元组的形式返回这些信息 我已经有了单词搜索的功能,只是找不到一种写单词的方法 发生的时间 我希望能得到一点帮助:) 谢谢 以下是一个您可以使用的函数: find :: (Eq a, Enum e) => a -> [a] -> e find _ [] = toEnum 0 find y
谢谢 以下是一个您可以使用的函数:
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
不明确”@ThreeFx是否为其指定了特定的返回类型?这个函数对我来说很好,但是我必须给它一个显式的返回类型,比如find3[1,2,3]::Int
,这样编译器就知道使用哪个Enum
实例了。@bheklillr lol我完全忘记了:D一切都很好。但是为什么不find::Eq a=>a->[a]->Int
?@PyRulez完美!谢谢大家!@专门化为Int
的ThreeFix将受到限制。如果你想使用懒惰的peano数字呢?还是无界的整数
?或者你打算用它来计算浮点数?