metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-10-11 07:58 pm
Entry tags:

Clojure, лямбды, черви, термы

(#(% %) #(% %)) - StackOverflow на кложуре
((fn [x] (x x)) (fn [x] (x x))) - StackOverflow на кложуре (более явная запись предущего)
на хаскеле даже на \x -> x x сразу ругается тайпчекер

(λx.xx)(λx.xx) - это оно же?
(deleted comment)

[identity profile] metaclass.livejournal.com 2012-10-11 05:21 pm (UTC)(link)
Не имеет, поэтому х-ль и ненавидит такое :)
(deleted comment)

[identity profile] metaclass.livejournal.com 2012-10-11 05:41 pm (UTC)(link)
В кложуре неленивый порядок.
(deleted comment)

[identity profile] metaclass.livejournal.com 2012-10-11 05:48 pm (UTC)(link)
А, так это у них секвенсы и прочая итерация ленивые. И некоторые функции, типа concat, на чем можно неплохо обжечься.
Во всяких F#/C# ленивость такая же - все энергичное, а итераторы ленивые.

[identity profile] http://users.livejournal.com/_slw/ 2012-10-11 05:46 pm (UTC)(link)
вроде бы в λ2(𝕋) возможно

[identity profile] gds.livejournal.com 2012-10-11 06:50 pm (UTC)(link)
в просто-типизированном -- не типизируется, конечно.
Но можно и похитрее типы взять для лямбда-исчисления.
$ ocaml
        Objective Caml version 3.12.1+rc1

# ((fun x -> (x x)) (fun x -> (x x)));;
Error: This expression has type 'a -> 'b
       but an expression was expected of type 'a
# #rectypes;;   <-----  magic here
# ((fun x -> (x x)) (fun x -> (x x)));;
^CInterrupted.
# let f () = ((fun x -> (x x)) (fun x -> (x x)));;
val f : unit -> 'a = <fun>
# fun x -> x x;;
- : ('a -> 'b as 'a) -> 'b = <fun>
# 

[identity profile] potan.livejournal.com 2012-10-12 11:49 am (UTC)(link)
Смотря как тимизированном. К OCaml можно подобрать опции, что он такое откомпилирует.