Я читаю Learn You the Haskell, и мне интересно, почему так много вещей действует как список, и ничего в Prelude использует родное средство типов классов, чтобы установить это:
". Байт-версия: называется cons. Она берет байты и байты и ставит байт в начале. Но он ленив, поэтому он сделает новый кусок, даже если первый фрагмент в байтовой строке не будет заполнен, Поэтому лучше использовать строгую версию cons, cons," если вы собираетесь вставлять много байтов в начале байтовой строки".
Почему нет списка TypeClass или что-то, что предлагает функцию :
для объединения Data.ByteString
, Data.List
, Data.ByteString.Lazy
и т.д.? Есть ли причина для этого, или это просто элемент наследия Haskell? Использование :
в качестве примера является своего рода преуменьшением, также из LYAH:
В противном случае модули bytestring имеют нагрузку функций, которые аналогичны функциям в Data.List, включая, но не ограничиваясь: head, tail, init, null, length, map, reverse, foldl, foldr, concat, takeWhile, фильтр и т.д.