從〇到1,創(chuàng)造一個(gè)純粹的世界!元一的,秩序的_20230803
從〇到1,創(chuàng)造一個(gè)純粹的世界!元一的,秩序的_20230803感謝up的課
?裘香蓮??https://b23.tv/11Rjb4v
之前用晶體管和電線,模擬過整個(gè)8大基本數(shù)據(jù)類型,類似于手搓門電路,寄存器,cpu。今天用01和lambda表達(dá)式從數(shù)學(xué)的進(jìn)行了,8大基本數(shù)據(jù)類型的搭建。連+-*/? ?if/else? ?布爾 都是用01 推演出來的。優(yōu)雅。
編程的目的是:讓機(jī)器代替人做某些事情
這樣就需要
1.人把要做的事情寫下來
2.機(jī)器能理解并且執(zhí)行人寫下來的
lambda 演算恰巧就做這兩件事情
lambda 演算規(guī)則。
函數(shù):
一:定義二:調(diào)用
函數(shù)執(zhí)行
















左邊函數(shù)就是篩子,右邊就是被篩的米和沙子
可以把左邊理解成,篩選方式,右邊為實(shí)際上例子的舉例
篩子變復(fù)雜的方法二是多個(gè)篩子連在一起?
答案:
地球=>地球 左輸入, 右輸出,就是一個(gè)函數(shù),函數(shù)是最小的了,已化簡(jiǎn)完畢。
公理:自然數(shù)的后繼是自然數(shù)。這里實(shí)際已經(jīng)定義的后繼的概念。然后你在用公理去推后繼的定理。。。公理是大于定理的。后繼的概念根本不需要推導(dǎo)。
嚴(yán)謹(jǐn)!這里后繼確實(shí)是公理提供的!說了一堆是為了讓后繼這個(gè)概念表示自然數(shù)好明白一點(diǎn).
前繼的推理也有問題,加=>道=>道(任意)是怎么推出 前繼=自然數(shù)=>自然數(shù)(任意)
回復(fù) @大預(yù)言術(shù)士 :省略了[doge][doge][doge]沒有邏輯推理能推出來 只能歸納出來。需要你自己嘗試幾下,目的是減短函數(shù)鏈。只要能達(dá)到這個(gè)目的,前繼換成其他函數(shù)也沒問題!
用函數(shù)定義自然數(shù)
嚴(yán)謹(jǐn)!這里后繼確實(shí)是公理提供的!說了一堆是為了讓后繼這個(gè)概念表示自然數(shù)好明白一點(diǎn)[脫單doge] 結(jié)果把你繞進(jìn)去了
0:我們給一個(gè)任意一個(gè)函數(shù),我們就認(rèn)為它就是零;
后繼:( )括號(hào)內(nèi)接收任意一個(gè)自然數(shù),然后調(diào)用 ,最后生成一個(gè)化簡(jiǎn)以后生成一個(gè)新的函數(shù),這個(gè)函數(shù)的結(jié)果就是上一個(gè)自然數(shù)的后繼

我們現(xiàn)在先做一個(gè)假設(shè),假設(shè)它執(zhí)行結(jié)果就是加 =>道=>道。 當(dāng)然也可以:道=>道=>道.現(xiàn)在呢我們就利用一個(gè)特點(diǎn),每次讓他執(zhí)行這個(gè)后期函數(shù)以后呢,在原來的這個(gè)函數(shù)上面的追加一個(gè)東西.這樣我們就用它的長(zhǎng)度每增加一個(gè)長(zhǎng)度為1,來表示這個(gè)后繼增加一次.以此類推,這樣我們就把所有的自然數(shù),用函數(shù)的方式定義了一遍。
為什么要引用這個(gè)語(yǔ)法糖呢?
因?yàn)?看起來非常不易讀 ,把某一個(gè)很長(zhǎng)的一個(gè)片段的 簡(jiǎn)寫。
就簡(jiǎn)寫成 零,這個(gè)讀作:道=>道 賦值給 零 。
以后所有的道箭頭道呢都可以用零來代替
註:這個(gè)“零”的值不一定是0,可能是其他的值,這個(gè)“零”只是名稱。
所以語(yǔ)法糖呢就是它沒有任何實(shí)際的含義,只是為了方便看起來方便。
我們繼續(xù)就把這一大坨 自然數(shù) =>加 =>自然數(shù) 就把它標(biāo)記為是后繼,函數(shù)表達(dá)式 就 讀作 :自然數(shù) =>加 =>自然數(shù) 賦值給后繼。
對(duì)于執(zhí)行結(jié)果:
第一層簡(jiǎn)寫標(biāo)記方法:
加=>道=>道, 我們就把它 簡(jiǎn)寫(賦值) 成 一,寫 做:
一 = 加 => 道 => 道
二 = 加 =>加 => 道 => 道
,一只是個(gè)記號(hào),可以用任何其他任何來標(biāo)記。
第二層簡(jiǎn)寫標(biāo)記方法(簡(jiǎn)中簡(jiǎn)): 道 => 道 直接用記號(hào) 零 表示 。
一 = 加 => 道 => 道
一 = 加 => 零
二 = 加 =>加 => 道 => 道
二 = 加 =>加 => 零
二 = 加 =>一
綜上總結(jié)規(guī)律,直接:
三 = 加 =>二
四 = 加 =>三
因此回顧函數(shù):
一 = 后繼(零 ) 一 記為 后繼(零) 第一次后繼后
二 = 后繼(一 )二 記為 后繼(一) 第二次后繼后
三 = 后繼(二) 三 記為 后繼(二) 第三次后繼后
賦值語(yǔ)法,沒有任何實(shí)際含義,只是為了使用方便。






為了方便此時(shí),讓 任意 = 零:
? ?
完整的布爾真假判斷函數(shù),輸入3參數(shù),
布爾真假函數(shù):
如果 = (輸入)=>(輸入)
如果 =(條件,選擇一,選擇二)=>條件(選擇一,選擇二)
定義條件:如果真,則真,如果假,則假。真假也是函數(shù)。
真函數(shù):
真 =(選擇一,選擇二)=> 選擇一
假函數(shù):
假 =(選擇一,選擇二)=> 選擇二
因此:
如果 =(真,選擇一,選擇二)=>真(選擇一,選擇二)
真(選擇一,選擇二) 真函數(shù) 調(diào)用選擇一,選擇二。
因?yàn)椋?br>(選擇一,選擇二)=> 選擇一(選擇一,選擇二)
//選擇一




為了直觀理解,根據(jù)語(yǔ)義
定義的函數(shù)
1.零=道=>道
2.后繼=自然數(shù)=>加=>自然數(shù)
3.前繼=自然數(shù)=>自然數(shù)(零)
4.相等=(數(shù)一,數(shù)二)=>?
5.加 =(數(shù)一,數(shù)二)=>
如果 (為零(數(shù)二) , 數(shù)一 , 加(后繼(數(shù)一),前繼(數(shù)二)))
6.乘 =(數(shù)一,數(shù)二)=>?
7.為零=(自然數(shù))=>?
8.如果=(條件,選擇一,選擇二)=>條件(選擇一,選擇二)
9.遞歸!
10.真=(選擇一,選擇二)=>選擇一
11.假=(選擇一,選擇二)=>選擇二
12.非=(條件)=>如果(條件,假,真)
13.或=(條件一,條件二)=>如果(條件一
,真
,如果(條件二,真,假))
14.與=(條件一,條件二)=>?
練習(xí)題:
練習(xí)7
與=(條件一,條件二)=>?// 輸出真或假
練習(xí)8
乘=(數(shù)一,數(shù)二)=>?// 輸出自然數(shù)
減=(數(shù)一,數(shù)二)=>?
除=(數(shù)一,數(shù)二)=>?
練習(xí)9
大于=(數(shù)一,數(shù)二)=>? // 輸出真或假
小于=(數(shù)一,數(shù)二)=>?
練習(xí)10
相等=(數(shù)一,數(shù)二)=>?// 輸出自然數(shù)
練習(xí)11.斐波那契數(shù)
第一個(gè)月初有一對(duì)剛誕生的兔子
第二個(gè)月之后(第三個(gè)月初)它們可以生育
每月每對(duì)可生育的兔子會(huì)誕生下一對(duì)新兔子
兔子永不死去
過了100個(gè)月,總計(jì)有多少兔子?
斐波那契數(shù) = (第幾月)=>?//輸出自然數(shù)
第4
((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))
(((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))
(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))
((選擇一,選擇二)=>選擇一));