From e0132e6b6874e6c13c98df310f3be6c537bc1134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Sat, 25 Nov 2023 01:30:28 +0900 Subject: [PATCH] [obsidian] vault backup: 2023-11-25 01:30:28[ --- content/Node.jsで100行で書くLISP風ラムダ計算.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/content/Node.jsで100行で書くLISP風ラムダ計算.md b/content/Node.jsで100行で書くLISP風ラムダ計算.md index 6ea743c4..d0397f31 100644 --- a/content/Node.jsで100行で書くLISP風ラムダ計算.md +++ b/content/Node.jsで100行で書くLISP風ラムダ計算.md @@ -10,7 +10,20 @@ まあプリミティブ演算は四則演算だけで再帰関数は自力で定義 ```lisp -(let fix (lambda (f) ((lambda (x) (f (lambda (y) (x x y) ))) ()) ) ) +(let fix + (lambda (f) + ( + (lambda (x) (f (lambda(y) (x x y)))) + (lambda (x) (f (lambda(y) (x x y)))) + ) + ) + (let fact + (fix (lambda (f) (lambda (n) (if n (* n (f (- n 1))) 1) ) )) + (fact 10) + ) + ) + %% 一行に直す %% + (let fix (lambda (f) ( (lambda (x) (f (lambda(y) (x x y)))) (lambda (x) (f (lambda(y) (x x y))))))(let fact (fix (lambda (f) (lambda (n) (if n (* n (f (- n 1))) 1) ) ))(fact 10))) ``` ```js