Хотел написать письмо Daan Leijen чтоб сделал хоть какое-нибудь коммьюнити для Parsec (а то документация, во-первых, скудная, во-вторых устаревает), а его единственный контактный имейл университетский уже не работает. На страничке http://research.microsoft.com/en-us/peop... тоже не видно.
*haskell
1. оказывается, х-ль умеет multiline-строки в виде:
a = "foo\
\ bar \
\ baz"
(слэш на новой строке указывает, где она начинается, чтоб можно было выравнивать это безобразие)
2. emacs при этом немного ломается, потому я уж лучше вернусь к "foo" ++ "bar" пока.
А если серьезно, никто не подскажет как нормально сделать в quickCheck аналог assertEquals? Чтоб красиво diff печатал (можно как-то совсем по-умному, конечно).
Подскажите, пожалуйста. А не существует ли, случаем, библиотеки, подобной регулярным выражениям, но работающей не для строк, а для произвольных данных? То есть, у меня есть список каких-то собственных сущностей, а мне необходимо делать матчинг в стиле регексов, где каждый из символов — моя сущность. То есть, ... more →
Сделал вот такой тип (синоним), всё было очень красиво:
type OptionsBlockBounds = (Int, Int)
Далее хотел написать функцию сравнения (объявить инстансом тайпкласса Ord). Я правильно понимаю, что единственный выход — делать вместо type newtype и перелопатить весь код (чтоб заворачивать / разворачивать в ... more →
Забавно, как ленивость не вошла в мозг даже авторам realworldhaskell.
> Note, though, that the chain is not completely short-circuited. Each (>>=) or (>>) in the chain will still match a Nothing on its left, and produce a Nothing on its right, all the way to the end. It's easy to forget this point: when a ... more →
Подскажите, пожалуйста, можно ли где-то найти книгу Окасаки (Chris Okasaki — Purely Functional Data Structures) в удобном для чтения, скажем, на андроид-таблетке виде? Или объясните различие между тезисом и книгой, заключается ли оно только в последних нескольких главах, или основной материал тоже.
Нашёл в ... more →
Ну почему про монад-трансформеры решили рассказать именно на примере, блять, континуэйшнов? http://www.haskell.org/haskellwiki/All_A...
Я не смог, в общем.
Кажется, ixset мне не подходит по памяти (как минимум), буду на нормальную БД пересаживаться. Может вернусь посмотреть на них когда научусь нормально профилировать. https://gist.github.com/4602235
На предыдущий вопрос ответ, наверное, в использовании функций по типу getOne http://hackage.haskell.org/packages/arch...
Но мне кажется глупым, что люди объявляют новый тип являющийся списком, а потом определяют операции, по сути дублирующие операции со списком. Хотя ... more →
Есть такой тип http://hackage.haskell.org/packages/arch... Это типа как результат выборки из БД. Мне нужно получить первый результат из него. Как это сделать?
То есть, есть ли в перечисленных какой-то typeclass, который дал бы возможность сделать что-то вроде (fst ... more →
Поставил локальный hoogle => сэкономил много чайников гугловской электроэнергии.
Дочитал learnyouahaskell, очень, всё же, крутая книга. Теперь можно смело идти читать realworldhaskell про всякие json-парсеры простенькие, на этот раз, думаю, чтение будет гораздо быстрее.
А еще в очередной раз убедился, что автор http://learnyouahaskell.com — очень талантливый человек. Как ни читаю что-то другое, сразу в сравнении это познаю.
Как-то я не понимаю, как я должен был догадаться о чем ошибка в подобном примере (показан тип, затем правильный пример, затем неправильный).
Prelude> :t ([3,4,5] >>=)
([3,4,5] >>=) :: Num a => (a → [b]) → [b]
Prelude> [3,4,5] >>= \x → [x,-x]
[3,-3,4,-4,5,-5]
Prelude> [3,4,5] >>= \x → ... more →
Ну, то есть, чтоб быть более конкретным. Вот этот код поиска по ключу в списке вида [("key1", "val1"), ("key2", "val2")]
findKey :: (Eq k) => k → [(k,v)] → Maybe v
findKey key = foldr (\(k,v) acc → if key == k then Just v else acc) Nothing
Будет работать эффективно (если вы будете делать findKey key1, то ... more →
Да уж, ленивость окончательно запутывает и так непростую ситуацию с foldl и foldr. Приходится ломать мозги.
Получается, что, в классическом варианте, когда вы проходите по всему списку, то (по возможности) лучше использовать foldl', т.к. хвостовая рекурсия и всё такое.
С другой стороны, в виду ленивости, foldr ... more →
Решил бросить real world haskell и начать learn you haskell for great good. Пока вторая глава, пока что эта книга кажется еще хуже :(
Решил слегка помучать себя. Подскажите, насколько ужасно я всё сделал?
Задача — написать функцию splitWith, которая будет делать примерно что и words, только для произвольных списков. То есть по предикату разбивает список. Типа такого:
*Main> splitWith odd [1,2,3,4,5,6,6,6,8,9]
[[2],[4],[6,6,6,8]]
*Main> ... more →
Вот, казалось бы, простая функция для вывода главной сущности, а сколько сайд-эффектов различных при юнит-тестировании http://screencloud.net/v/bL3M
В связи с этим вопрос, кстати, по всем этих вашим Хаскелям. При тестировании некоторого юнита хорошо бы как минимум быть уверенным, что ты заменил на моки / стабы все ... more →
Ну вот не понимаю. Очередная статься, очередная логика: хаскель — функциональный язык => нельзя поменять значение переменной => результат функции зависит только от её параметров.
а что, блять, прочитать что-то из базы данных хаскель не умеет?
http://learnyouahaskell.com/input-and-ou...
*haskell is used by:
0xd34df00d
0xd34df00d
Minoru
Minoru
профессиональный говноед
ulidtko
kb
kb
Александр Марков
komar
Spiritual ecstasy
rapture
λ
lukish
zw0rk
zw0rk
Crazy_Owl
Crazy_Owl
16+
238328
4DA
4da
L29Ah
L29Ah
werehuman
werehuman
Evgeny I. E. Omelchenko
Elemir
amd63
amd63
Octocat
octocat
Mагог Магогович
magog
Voker57
Voker57
cirno
cirno
asmer
asmer
rhinze
rhinze
lexszero
lexszero
8
Eight
gelraen
gelraen
Michael Pogoda
MPogoda
desperate donkey
odin
Оранжевус Охуеннус
utros
Darth Bricktop
Like-all
folex
folex
folone
folone
nexeuse
nexeuse
Fess
zetoke
18+ Запрещено для детей.
hedgehog
beardog
beardog
oreolek
oreolek
Hirthwork McGillah
hirthwork
Andrew Motrenko
werdn
Klayraat
clayrat
SirAnthony
SirAnthony
Псикукумбер Томатический
Psykukumber
Ky6uk
Ky6uk
eurekafag
eurekafag
Bender Bending Rodríguez
DJm00n
Oleg Tsarev
zamotivator
failman
failman
lkdjvsdkjfgh
saransk
jabber
jabber
Лисий хвост
madInsane
Андрей
whisper
svtk
svtk
Jarkko
Jarkko
0xd34df00d
Minoru
ulidtko
kb
komar
rapture
lukish
zw0rk
Crazy_Owl
238328
4da
L29Ah
werehuman
Elemir
amd63
octocat
magog
Voker57
cirno
asmer
rhinze
lexszero
Eight
gelraen
MPogoda
odin
utros
Like-all
folex
folone
nexeuse
zetoke
hedgehog
beardog
oreolek
hirthwork
werdn
clayrat
SirAnthony
Psykukumber
Ky6uk
eurekafag
DJm00n
zamotivator
failman
saransk
jabber
madInsane
whisper
svtk
Jarkko