最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

4.1.用函數(shù)模擬自然數(shù),習題詳解

2023-08-01 10:20 作者:裘香蓮  | 我要投稿

代碼:

// 2.布爾值,如果

// 如果 [條件]為……真或假 那么 [選擇一] 否則 [選擇二]


// (選擇一,選擇二)中,如果 條件為……真,那么 [選擇一]

// (選擇一,選擇二)中,如果 條件為……假,否則 [選擇二]

真 = (選擇一,選擇二)=>選擇一;

假 = (選擇一,選擇二)=>選擇二;


如果 = (條件,選擇一,選擇二)=>條件(選擇一,選擇二);


真(上天=>上天,入地=>入地);//上天=>上天

((選擇一,選擇二)=>選擇一)(上天=>上天,入地=>入地);

上天=>上天;


真(好=>好,壞=>壞);//好=>好

假(好=>好,壞=>壞);//壞=>壞



如果(真,上天=>上天,入地=>入地);//上天=>上天

((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(真,上天=>上天,入地=>入地);

真(上天=>上天,入地=>入地);

上天=>上天;


如果(假,上天=>上天,入地=>入地);//入地=>入地


// 3.1.真值表

非 = (條件)=>如果(條件,假,真);

非(真);//假

如果(真,假,真);


非(假);//真

如果(假,假,真);



//為什么賦值語法很有用?

非(非(真));

非(假);

真;


//展開后

非(非(真));

((條件)=>如果(條件,假,真))(((條件)=>如果(條件,假,真))(真));

((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(條件,假,真))(((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(條件,假,真))(真));

((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))(((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))((選擇一,選擇二)=>選擇一));


((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))

??(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))

????(((條件)=>((條件,選擇一,選擇二)=>條件(選擇一,選擇二))

????????(條件,((選擇一,選擇二)=>選擇二),((選擇一,選擇二)=>選擇一)))

??????????((選擇一,選擇二)=>選擇一));


// 3.2.或,條件一,條件二任意一個真,那么為真,否則為假

或 = (條件一,條件二) =>

??如果(條件一,真,如果(條件二,真,假));


或(真,真);//真

如果(真,真,如果(真,真,假));

真;


或(真,假);//真

或(假,真);//真

或(假,假);//假




// 3.2.與,條件一,條件二都為真,那么為真,否則為假

與 = (條件一,條件二) =>?

????如果(條件一,如果(條件二,真,假),假)


與(真,真);//真

與(真,假);//假

與(假,真);//假

與(假,假);//假




// 第三部分:構建自然數(shù)


//2.零

零=道=>道;


//3. 0~6


零;// 0

加=>零;//1

加=>加=>零;//2

加=>加=>加=>零;//3

加=>加=>加=>加=>零;//4

加=>加=>加=>加=>加=>零;//5

加=>加=>加=>加=>加=>加=>零;//6




()=>零;//1

()=>()=>零;//2

()=>()=>()=>零;//3

()=>()=>()=>()=>零;//4

()=>()=>()=>()=>()=>零;//5

()=>()=>()=>()=>()=>()=>零;//6



(()=>零)()

//4.前繼 函數(shù)

//前繼(加=>加=>零)??加=>零

前繼 = 自然數(shù)=>自然數(shù)()



//5.后繼 函數(shù)

//后繼(加=>加=>零);?加=>加=>加=>零;

自然數(shù)=>加=>自然數(shù);

后繼 = 自然數(shù)=>()=>自然數(shù);



//6.1.加法 3+1

加=>加=>加=>零;

加=>加=>加=>加=>零;

后繼(加=>加=>加=>零);//后繼(3) 結果 4



//6.2.加法 3+2 = 3+1+1?

加=>加=>加=>零;

后繼(后繼(加=>加=>加=>零));


//6.3.加法 3+3 = 3+1+1+1?

加=>加=>加=>零;

后繼(后繼(后繼(加=>加=>加=>零)));


//6.4.加法?

// (數(shù)一,數(shù)二)=> 后繼(后繼(后繼(數(shù)一)))...


// 加(三,零) 三


// 加(三,一)?

// 加(后繼(三),前繼(一))?

// 加(四,零)?


// 加(三,二)?

// 加(四,前繼(二))?

// 加(五,前繼(前繼(二)))?

// 加(五,零)?


// todo 待實現(xiàn)

為零=(自然數(shù))=>自然數(shù)===零?真:假;// 后面解釋或替換掉這個函數(shù).


// def 為零(自然數(shù)):

//???if(自然數(shù) == 零):

//?????return 真

//???else:

//?????return 假



加 = (數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,數(shù)一

??????,加(后繼(數(shù)一),前繼(數(shù)二))

????);



零;// 0

一 = 加=>零;//1

二 = 加=>加=>零;//2

三 = 加=>加=>加=>零;//3

四 = 加=>加=>加=>加=>零;//4

五 = 加=>加=>加=>加=>加=>零;//5


加(三,二);

((數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,數(shù)一

??????,加(后繼(數(shù)一),前繼(數(shù)二))

????))(三,二);


如果(為零(二)

??,三

??,加(后繼(三),前繼(二))

);

加(后繼(三),前繼(二));

加(四,一);



((數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,數(shù)一

??????,加(后繼(數(shù)一),前繼(數(shù)二))

????))(四,一);


如果(為零(一)

??,四

??,加(后繼(四),前繼(一))

);

加(后繼(四),前繼(一));

加(五,零);


((數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,數(shù)一

??????,加(后繼(數(shù)一),前繼(數(shù)二))

????))(五,零);


如果(為零(零)

??,五

??,加(后繼(五),前繼(零))

);


如果(真

??,五

??,加(后繼(五),前繼(零))

);

如果(為零(零)

??,五

??,加(后繼(五),前繼(零))

);

//加(后繼(五),前繼(零),依然會被執(zhí)行

加(后繼(五),前繼(零));



((數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,數(shù)一

??????,加(后繼(數(shù)一),前繼(數(shù)二))

????))(六,前繼(零));


如果(為零(前繼(零))

????,六

????,加(后繼(六),前繼(前繼(零)))

??)


加(后繼(后繼(五)),前繼(前繼(零)));

加(后繼(后繼(后繼(五))),前繼(前繼(前繼(零))));


// 發(fā)生了什么...

// 永遠執(zhí)行下去


// 7.重新定義真假,如果

如果(真, 五, 加(后繼(五),前繼(零)));


真 = (選擇一,選擇二)=>選擇一;

假 = (選擇一,選擇二)=>選擇二;


// 使得第二個參數(shù)不要被調用

真(五,加(后繼(五),前繼(零)));


(懶惰執(zhí)行)=>加(后繼(五),前繼(零));

真((懶惰執(zhí)行)=>五,(懶惰執(zhí)行)=>加(后繼(五),前繼(零)));

(懶惰執(zhí)行)=>五;


真 = (選擇一,選擇二)=>選擇一(零);


真(()=>五,()=>加(后繼(五),前繼(零)));

真 = (選擇一,選擇二)=>選擇一();




真(()=>五,()=>加(后繼(五),前繼(零)));

(()=>五)()

// ((懶惰執(zhí)行)=>加(后繼(五),前繼(零)))(零)

// 加(后繼(五),前繼(零))


真 = (選擇一,選擇二)=>選擇一();

假 = (選擇一,選擇二)=>選擇二();

// 選擇一?

// 選擇二

// 都需要懶惰執(zhí)行,()=>



// 以前好多函數(shù)都要重新定義...

如果 = (條件,選擇一,選擇二)=>條件(選擇一,選擇二);


// 3.1.真值表

非 = (條件)=>如果(條件,()=>假,()=>真);

非(真);//假

非(假);//真


// 3.2.或,條件一,條件二任意一個真,那么為真,否則為假

或 = (條件一,條件二) =>

??如果(條件一,()=>真,()=>如果(條件二,()=>真,()=>假));


或(真,真);//真

或(真,假);//真

或(假,真);//真

或(假,假);//假




// 3.2.與,條件一,條件二都為真,那么為真,否則為假

與 = (條件一,條件二) =>?

????如果(條件一,()=>如果(條件二,()=>真,()=>假),()=>假)


與(真,真);//真

與(真,假);//假

與(假,真);//假

與(假,假);//假


// 7.定義加減乘,相等,大于,小于



加 = (數(shù)一,數(shù)二) =>?

????如果(為零(數(shù)二)

??????,()=>數(shù)一

??????,()=>加(后繼(數(shù)一),前繼(數(shù)二))

????);



減 = (數(shù)一,數(shù)二) =>

????如果(為零(數(shù)二)

??????,()=>數(shù)一

??????,()=>減(前繼(數(shù)一),前繼(數(shù)二))

????);


為一 = (自然數(shù)) => 如果(為零(自然數(shù))

????,()=>假

????,()=>如果(為零(前繼(自然數(shù)))

??????????,()=>真

??????????,()=>假)

???);


乘非零 = (數(shù)一,數(shù)二) =>

??????如果(為一(數(shù)二)

??????,()=>數(shù)一

??????,()=>乘非零(加(數(shù)一,數(shù)一),減(數(shù)二,一))

????);


乘 = (數(shù)一,數(shù)二) =>

????如果(為零(數(shù)二)

??????,()=>零

??????,()=>乘非零(數(shù)一,數(shù)二)

????);



相等=(數(shù)一,數(shù)二)=>如果(

????????與(為零(減(數(shù)一,數(shù)二)),

?????????為零(減(數(shù)二,數(shù)一)))

???????,()=>真

???????,()=>假);


小于=(數(shù)一,數(shù)二) => 如果(

????????與(為零(減(數(shù)一,數(shù)二)),

?????????非(為零(減(數(shù)二,數(shù)一))))

??????,()=>真

??????,()=>假);


大于=(數(shù)一,數(shù)二) => 如果(

????????與(非(為零(減(數(shù)一,數(shù)二))),

?????????為零(減(數(shù)二,數(shù)一)))

??????,()=>真

??????,()=>假);



// 斐波那契數(shù)

// 第一個月初有一對剛誕生的兔子

// 第二個月之后(第三個月初)它們可以生育

// 每月每對可生育的兔子會誕生下一對新兔子

// 兔子永不死去

// 過了100個月,總計有多少兔子?


//1,1,2,3,5,8,13,……,斐(第88個月),斐(第89個月),斐(第88個月)+斐(第89個月),

斐波那契數(shù) = (第幾個月) =>?

????如果(或(為零(第幾個月),為一(第幾個月)),

??????()=>一,

??????()=>加(斐波那契數(shù)(減(第幾個月,一))

?????????,斐波那契數(shù)(減(第幾個月,二)))

????);


4.1.用函數(shù)模擬自然數(shù),習題詳解的評論 (共 條)

分享到微博請遵守國家法律
壶关县| 克山县| 赤峰市| 通渭县| 威信县| 宜阳县| 曲水县| 南岸区| 余江县| 瓦房店市| 靖远县| 台北市| 云安县| 瑞安市| 安庆市| 龙州县| 利津县| 农安县| 平江县| 海盐县| 丰镇市| 东乌珠穆沁旗| 灵璧县| 抚顺市| 日照市| 沙雅县| 林周县| 沾化县| 贞丰县| 曲松县| 六安市| 开阳县| 蒲江县| 昭通市| 新宁县| 仁化县| 樟树市| 大化| 庄河市| 长春市| 化隆|