Семён Борода ([info]love5an) wrote,
@ 2009-11-08 07:43:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:lisp

Прув ов концепт
http://paste.lisp.org/display/89970

(defcurried add-three (x y z) (+ x y z))
(def add-two (add-three 0))
(def inc (add-two 1))
 
(inc 9)
;; => 10

(add-three 1 2 3)
;; => 6



(6 comments) - (Post a new comment)


[info]axiger
2009-11-08 06:09 am UTC (link)
нужны пояснения :)

(Reply to this) (Thread)


[info]love5an
2009-11-08 04:06 pm UTC (link)
какие? :)
http://en.wikipedia.org/wiki/currying

(Reply to this) (Parent)


[info]kmmbvnr
2009-11-08 10:24 am UTC (link)
Гы, гы.. я думал только джависты эмулируют функции высшего порядка классами :)

(Reply to this) (Thread)


[info]dmitry_vk
2009-11-08 02:12 pm UTC (link)
Тут не класс, а метакласс. И это не эмуляция, а реализация. В случае эмуляции пришлось бы все писать вручную. Кстати, методы в лиспе - тоже инстансы funcallable-standard-class. Сюрприз? :)

(Reply to this) (Parent)


[info]love5an
2009-11-08 04:07 pm UTC (link)
объекты этого класса - функции :)
их можно funcall, apply и присваивать в function cells символов.

(Reply to this) (Parent)

Статья про MOP
[info]archimag-dev.blogspot.com
2009-11-09 10:13 am UTC (link)
Написал бы кто, что ли, статейку вводную про MOP для lisper.ru...

P.S. Я тут вдруг вспомнил, что читал про CLOS (и MOP) ещё году этак в 2001 (когда про CL даже не слышал ничего) в книге ... "Объектно-ориентированный анализ и проектирование на С++" Буча :)

(Reply to this)


(6 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…