Haskell字谜搜索

Haskell字谜搜索,haskell,Haskell,我需要帮助,我需要找到所有包含最多单词的字谜 该函数必须为以下类型: 字谜::[String]->[[String]] 例如: 字谜词[“abc”、“hehe”、“foo”、“cba”、“eheh”、“hhee”、“oof”、“ofo”] [[“ehh”、“hehe”、“hhee”]、[“foo”、“ofo”、“oof”]] 只需使用data.list库,并将所有代码放入一行,最大长度为104 import Data.List anagram :: [String] -> [[Strin

我需要帮助,我需要找到所有包含最多单词的字谜

该函数必须为以下类型: 字谜::[String]->[[String]]

例如:

字谜词[“abc”、“hehe”、“foo”、“cba”、“eheh”、“hhee”、“oof”、“ofo”]

[[“ehh”、“hehe”、“hhee”]、[“foo”、“ofo”、“oof”]]

只需使用data.list库,并将所有代码放入一行,最大长度为104

import Data.List

anagram :: [String] -> [[String]]

anagram lst =  let {t = map (nub. map snd) $ groupBy (\(l,_) (r,_) -> l == r) $ sortOn fst $  map (\s -> (sort s,s)) lst;  cmax = maximum $ map length t} in  filter (\l -> cmax == length l) t
问题是我的代码太长了,你可以帮我,我对haskell一无所知
我需要将所有代码放在一行上,且不超过104个字符,我的代码放在一行上,但长度超过104,我发现您的问题有点不清楚,但听起来您的问题是代码超出了行限制。如果是这样,应该可以在代码中添加换行符,如下所示:

import Data.List

anagram :: [String] -> [[String]]
anagram lst =
    let t = map (nub. map snd) $
            groupBy (\(l,_) (r,_) -> l == r) $
            sortOn fst $
            map (\s -> (sort s,s)) lst
        cmax = maximum $ map length t
    in filter (\l -> cmax == length l) t
我建议阅读以了解Haskell中的代码格式。

也许:

anagram = let by f = groupBy (\x y -> f x == f y) . sortOn f in last . by length . by sort

没有问题的是,我需要把所有的代码放在一行上,不超过104个字符,我的代码放在一行上,但长度超过10个字符104@IvanArtt嗯,也许你应该把它编辑成你的问题?至于如何做到这一点,我不确定……我建议您首先应该专注于寻找一种更简单的方法来解决这个问题,然后再尝试为其编写一些代码。/checker.sh:line 10:26 Killed timeout--signal=KILL“$timeout”runuser-u nobody--“$@”它可以工作,但是由于某些原因,我无法提交以进行验证。虽然超时设置为1秒,但应该可以工作