Один аппликативный функтор как вычислительный базис

Feb 09, 2012 17:44

Сперва пример. Вот такая программа на хаскеле вычисляет и выводит ответ на жизнь, вселенную и вообще:

import Control.Applicative
main = print $ answer succ 0 where
one = pure <*> (pure :: a -> b -> a)
inc = (<*>) ((<*>) <$> pure)
mul = (<*>) <$> pure
h = mul <*> inc
answer = h . h . h $ one
Аппликативный функтор характеризуется наличием ( Read more... )

haskell, fp

Leave a comment

Comments 20

diam_2003 February 9 2012, 10:52:00 UTC
Не, две функции - это уже скучно.
Одноточечный универсальный базис слабо =) ?

Reply

thedeemon February 9 2012, 11:07:57 UTC
Легко, но не так весело. Просто тут приколько совпал базис с известным стандартным интерфейсом.

Reply

akuklev February 9 2012, 20:36:59 UTC
Это нифига не случайное совпадение, а собствено базовая мотивация интерфейса аппликативных функторов.

Reply

thedeemon February 10 2012, 04:08:02 UTC
Оно ж не для каждого ап.функтора справедливо. Одно дело засунуть в функтор и применить какую-то свою функцию, другое - как здесь - реализовать функцию на самом интерфейсе ап.функтора.

Reply


lomeo February 9 2012, 11:03:02 UTC
Клёво, спасибо!

Reply


(The comment has been removed)

thedeemon February 9 2012, 12:32:08 UTC
Просто в таком богатом языке-хосте это хм... Почти столь же удобно и нужно, как вычисления на шаблонах в С++. :)

Reply


(The comment has been removed)

thedeemon February 9 2012, 12:21:19 UTC
ну так скучно в деревне :)

Reply

(The comment has been removed)

thedeemon February 9 2012, 16:43:55 UTC
Этим занимаются специалисты, я в ананасах ничего не понимаю. :)

Reply


nealar February 9 2012, 12:01:52 UTC
Вот только я дочитал про ATS! И сразу новую мозгодробилку подкинули.

Reply


Leave a comment

Up