Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

Category:

Забавный Хаскелл-тюториал

Изрядно закопавшись в последовательное изложение хаскелла в учебнике, очень было приятно зайти немного с другой стороны, -- со стороны "что-нибудь уже сделать компилирующееся и работающее".

Haskell Quest Tutorial, как раз то, что надо, когда что-то уже в голове сложилось.

И основные конструкции понятны, и краем головы известно, что IO() -- это монада, в общем красиво, просто и занимательно. Прочел на одном дыхании.

Еще один изящный пример работы с ленивыми списками оттуда:

Числа Фибоначчи:
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

take 10 fibs

фибс, -- это список, начальные елементы которого 0 и 1, а дальше получаем суммированием со сдвинутым самим собой, т.е.
[0,1,1,2,3]
и
[1,1,2,3]

И берем 10 первых чисел, так, что бесконечность списка совершенно не мешает:
take 10 fibs


И ведь, зараза, оптимизирует рекурсию, чтобы никаких лишних вычислений. А вы говорите, динамическое программирование!
Tags: haskell, tech
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments