Я пытаюсь поместить кучу слов в хеш-таблицу на основе длины. Слова хранятся вHaskell: List Consrehension/Hash Table Entries
data Entry = Entry {word :: String, length :: Int} deriving Show
Теперь у меня есть все слова, хранящиеся в «записях», которые представляют собой список записей. Затем мой хэш-таблица определяется следующим образом:
type Hash = [Run]
type Run = [Entry]
Теперь я пытаюсь выяснить, как получить записи в хэш-таблицу. Ниже моя текущая попытка
maxL = maximum [length e | e <- entries]
runs = [r | r <- [e | e <- entries, length e == i]] where i = [1..maxL]
Компилятор, очевидно, говорил мне, что Int не может быть по сравнению с [Int], но я не знаю, как сказать
e | e <- entries, e has length i
Любая помощь очень ценится !
Приветствия
'[[запись]]' не хэш-таблицы, это список списков 'Entry' записей. –
Hm. Я просто слежу за тем, что рассказывали мои профессора. Разве это не хеш-таблица?У меня очень мало понимания хэш-таблиц, но разве они не просто сохраняют записи в списках списков, основываясь на некоторой хеширующей функции? В этом случае функцией хэширования будет длина слова – connorbode
Описание проблемы таким образом делает ее запутанной. Просто скажите, что вы хотите сгруппировать список строк по их длине. –