*haskell

kb 16.03.2013 09:47

Хотел написать письмо Daan Leijen чтоб сделал хоть какое-нибудь коммьюнити для Parsec (а то документация, во-первых, скудная, во-вторых устаревает), а его единственный контактный имейл университетский уже не работает. На страничке http://research.microsoft.com/en-us/peop... тоже не видно.

kb 01.03.2013 08:20

1. оказывается, х-ль умеет multiline-строки в виде:
a = "foo\
\ bar \
\ baz"
(слэш на новой строке указывает, где она начинается, чтоб можно было выравнивать это безобразие)
2. emacs при этом немного ломается, потому я уж лучше вернусь к "foo" ++ "bar" пока.

kb 25.02.2013 16:53

А если серьезно, никто не подскажет как нормально сделать в quickCheck аналог assertEquals? Чтоб красиво diff печатал (можно как-то совсем по-умному, конечно).

kb 08.02.2013 05:42

Подскажите, пожалуйста. А не существует ли, случаем, библиотеки, подобной регулярным выражениям, но работающей не для строк, а для произвольных данных? То есть, у меня есть список каких-то собственных сущностей, а мне необходимо делать матчинг в стиле регексов, где каждый из символов — моя сущность. То есть, ... more →

kb 07.02.2013 16:35

Сделал вот такой тип (синоним), всё было очень красиво:

type OptionsBlockBounds = (Int, Int)

Далее хотел написать функцию сравнения (объявить инстансом тайпкласса Ord). Я правильно понимаю, что единственный выход — делать вместо type newtype и перелопатить весь код (чтоб заворачивать / разворачивать в ... more →

kb 04.02.2013 06:31

Забавно, как ленивость не вошла в мозг даже авторам 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 →

kb 31.01.2013 06:31

Подскажите, пожалуйста, можно ли где-то найти книгу Окасаки (Chris Okasaki — Purely Functional Data Structures) в удобном для чтения, скажем, на андроид-таблетке виде? Или объясните различие между тезисом и книгой, заключается ли оно только в последних нескольких главах, или основной материал тоже.

Нашёл в ... more →

kb 24.01.2013 13:15

Ну почему про монад-трансформеры решили рассказать именно на примере, блять, континуэйшнов? http://www.haskell.org/haskellwiki/All_A...

Я не смог, в общем.

kb 23.01.2013 05:15

Кажется, ixset мне не подходит по памяти (как минимум), буду на нормальную БД пересаживаться. Может вернусь посмотреть на них когда научусь нормально профилировать. https://gist.github.com/4602235

kb 22.01.2013 14:16

(modify-syntax-entry ?_ "_" haskell-mode-syntax-table)

kb 15.01.2013 06:18

На предыдущий вопрос ответ, наверное, в использовании функций по типу getOne http://hackage.haskell.org/packages/arch...

Но мне кажется глупым, что люди объявляют новый тип являющийся списком, а потом определяют операции, по сути дублирующие операции со списком. Хотя ... more →

kb 15.01.2013 06:03

Есть такой тип http://hackage.haskell.org/packages/arch... Это типа как результат выборки из БД. Мне нужно получить первый результат из него. Как это сделать?

То есть, есть ли в перечисленных какой-то typeclass, который дал бы возможность сделать что-то вроде (fst ... more →

kb 20.12.2012 17:50

Поставил локальный hoogle => сэкономил много чайников гугловской электроэнергии.

kb 03.12.2012 10:49

Дочитал learnyouahaskell, очень, всё же, крутая книга. Теперь можно смело идти читать realworldhaskell про всякие json-парсеры простенькие, на этот раз, думаю, чтение будет гораздо быстрее.

kb 27.11.2012 09:15

А еще в очередной раз убедился, что автор http://learnyouahaskell.com — очень талантливый человек. Как ни читаю что-то другое, сразу в сравнении это познаю.

kb 21.11.2012 06:46

Как-то я не понимаю, как я должен был догадаться о чем ошибка в подобном примере (показан тип, затем правильный пример, затем неправильный).

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 →

kb 16.11.2012 15:23

У х-листов даже поиск не как у людей http://screencloud.net/v/ayfP

kb 12.11.2012 15:49

Как понять, где находится определение instance Applicative ((→) r) ?

kb 04.11.2012 14:02

И еще. http://learnyouahaskell.com , всё же, прекрасна. Уже на 10й главе.

kb 17.10.2012 13:40

Ну, то есть, чтоб быть более конкретным. Вот этот код поиска по ключу в списке вида [("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 →

kb 17.10.2012 13:30

Да уж, ленивость окончательно запутывает и так непростую ситуацию с foldl и foldr. Приходится ломать мозги.

Получается, что, в классическом варианте, когда вы проходите по всему списку, то (по возможности) лучше использовать foldl', т.к. хвостовая рекурсия и всё такое.

С другой стороны, в виду ленивости, foldr ... more →

kb 03.10.2012 13:48

Решил бросить real world haskell и начать learn you haskell for great good. Пока вторая глава, пока что эта книга кажется еще хуже :(

kb 31.08.2012 09:43

Решил слегка помучать себя. Подскажите, насколько ужасно я всё сделал?

Задача — написать функцию splitWith, которая будет делать примерно что и words, только для произвольных списков. То есть по предикату разбивает список. Типа такого:

*Main> splitWith odd [1,2,3,4,5,6,6,6,8,9]
[[2],[4],[6,6,6,8]]
*Main> ... more →

kb 03.08.2012 14:15

Вот, казалось бы, простая функция для вывода главной сущности, а сколько сайд-эффектов различных при юнит-тестировании http://screencloud.net/v/bL3M

В связи с этим вопрос, кстати, по всем этих вашим Хаскелям. При тестировании некоторого юнита хорошо бы как минимум быть уверенным, что ты заменил на моки / стабы все ... more →

kb 24.07.2012 07:43

Ну вот не понимаю. Очередная статься, очередная логика: хаскель — функциональный язык => нельзя поменять значение переменной => результат функции зависит только от её параметров.

а что, блять, прочитать что-то из базы данных хаскель не умеет?

http://learnyouahaskell.com/input-and-ou...

Do you really want to delete ?

*haskell is used by:

0xd34df00d

0xd34df00d

Minoru

Minoru

kb

kb

λ

lukish

zw0rk

zw0rk

Crazy_Owl

Crazy_Owl

16+

238328

4DA

4da

L29Ah

L29Ah

werehuman

werehuman

amd63

amd63

Rayslava

Octocat

octocat

Voker57

Voker57

cirno

cirno

asmer

asmer

rhinze

rhinze

lexszero

lexszero

8

Eight

gelraen

gelraen

Michael Pogoda

MPogoda

Darth Bricktop

Like-all

folex

folex

folone

folone

nexeuse

nexeuse

Fess

zetoke

beardog

beardog

oreolek

oreolek

Hirthwork McGillah

hirthwork

Klayraat

clayrat

SirAnthony

SirAnthony

Ky6uk

Ky6uk

eurekafag

eurekafag

hanyuupoke

Oleg Tsarev

zamotivator

failman

failman

lkdjvsdkjfgh

saransk

jabber

jabber

Андрей

whisper

svtk

svtk

Jarkko

Jarkko