Lambda Spiral
Description
The (Archimedean) Spiral Is Formed By A Lambda Expression Shown Below. It Performs Computation Similar To `[1, 2, 3].Map(Elem => Elem - 1)` (Javascript). `(F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(M => L => F => (_ => _)((L => L(_ => _ => (_ => F => F(_ => _))))(L))(_ => (_ => (F => _ => F(_ => _))))(_ => (H => T => (L => R => F => F(L)(R))(H)(T))(F((P => P(L => _ => L))(L)))(M((P => P(_ => R => R))(L))(F))))((E => (L => (F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(V => R => L => (_ => _)((L => L(_ => _ => (_ => F => F(_ => _))))(L))(_ => R)(_ => V((H => T => (L => R => F => F(L)(R))(H)(T))((P => P(L => _ => L))(L))(R))((P => P(_ => R => R))(L))))(_ => (F => _ => F(_ => _)))(L))(E(_ => _ => (F => _ => F(_ => _)))))((F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(R => T => H => (_ => _)((N => N(_ => (_ => F => F(_ => _)))(_ => F => F(_ => _)))(H))(_ => T)(_ => R((H => T => (L => R => F => F(L)(R))(H)(T))(H)(T))))(_ => (F => _ => F(_ => _)))(F => X => F(X))(F => X => F(F(X)))(F => X => F(F(F(X))))))(E => (M => N => N(N => (P => P(L => _ => L))(N(P => (L => R => F => F(L)(R))((P => P(_ => R => R))(P))((N => F => X => F(N(F)(X)))((P => P(_ => R => R))(P))))((L => R => F => F(L)(R))(_ => _)(_ => X => X))))(M))(E)(F => X => F(X)))` The Expression Is Also A Legal Es6 Arrow Function. You Can Save The Following Code To A .Js And Use [Node.Js](Https://Nodejs.Org/En/) To Run It. Let Lt = (F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(M => L => F => (_ => _)((L => L(_ => _ => (_ => F => F(_ => _))))(L))(_ => (_ => (F => _ => F(_ => _))))(_ => (H => T => (L => R => F => F(L)(R))(H)(T))(F((P => P(L => _ => L))(L)))(M((P => P(_ => R => R))(L))(F))))((E => (L => (F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(V => R => L => (_ => _)((L => L(_ => _ => (_ => F => F(_ => _))))(L))(_ => R)(_ => V((H => T => (L => R => F => F(L)(R))(H)(T))((P => P(L => _ => L))(L))(R))((P => P(_ => R => R))(L))))(_ => (F => _ => F(_ => _)))(L))(E(_ => _ => (F => _ => F(_ => _)))))((F => (X => F(N => X(X)(N)))(X => F(N => X(X)(N))))(R => T => H => (_ => _)((N => N(_ => (_ => F => F(_ => _)))(_ => F => F(_ => _)))(H))(_ => T)(_ => R((H => T => (L => R => F => F(L)(R))(H)(T))(H)(T))))(_ => (F => _ => F(_ => _)))(F => X => F(X))(F => X => F(F(X)))(F => X => F(F(F(X))))))(E => (M => N => N(N => (P => P(L => _ => L))(N(P => (L => R => F => F(L)(R))((P => P(_ => R => R))(P))((N => F => X => F(N(F)(X)))((P => P(_ => R => R))(P))))((L => R => F => F(L)(R))(_ => _)(_ => X => X))))(M))(E)(F => X => F(X))); Console.Log(Array(Lt)); // Show [0, 1, 2] Function Natural(N) { Return N(I => I + 1)(0); } Function Array(Lt) { Let Unit = _ => _; Let No_Use = Unit; Let Yes = F => _ => F(No_Use); Let No = _ => F => F(No_Use); Let When = Unit; Let Pair = L => R => F => F(L)(R); Let Left = P => P(L => _ => L); Let Right = P => P(_ => R => R); Let Nil = _ => Yes; Let Con = H => T => Pair(H)(T); Let Head = Left; Let Tail = Right; Let Is_Nil = L => L(_ => _ => No); Let Isempty = Is_Nil; Function Arr(Acc, L) { Return When(Isempty(L)) (() => Acc) (() => Arr(Acc.Concat([Natural(Head(L))]), Tail(L))); } Return Arr([], Lt); }
Statistics
Likes
13
Downloads
0