程式語言中的 組合性 是什麼意思?

時間 2021-05-11 13:24:31

1樓:丁順

在SICP 1.1章,作者說到了乙個強大的程式語言能夠有3個基本的機制:

* 基礎的表示式(primitive expressions)

* 各種組合的方法(means of combination)

* 各種抽象的方法 (means of abstraction)

而一般每乙個抽象的方法都有對應的組合的方法來把他抽象的東西可以進一步使用

如果用樂高比喻:

* 基礎表示式就是最小單位的各種積木單元

* 組合的方法就是通過積木單元的凹槽介面能夠把兩個積木單元連線起來

* 抽象的方法就是兩個或多個連線起來的積木組成了一種新的積木單元,並且能夠通過凹槽介面被繼續組合

那程式語言來說:

* 基礎表示式就是各種常量,基礎運算表示式

* 組合的方法有很多,比如程式設計寫多個表示式其實就算是一種組合的方法,struct能把資料合併到一起,也算是一種組合的方法,等等

* 抽象的方法也很多,比如可以定義函式就是一種抽象,呼叫函式可以作為一種表示式和其他表示式做組合;比如OO的類也是一種抽象的方法,可以生成類的物件並進行各種物件操作,這樣就可以和其他語句組合

不同的語言,提供了不同的這3種機制,使得語言的表達能力會有所差別

2樓:Martin awodey

在lz的例子裡2種寫法其實意義差不多。。以hakell為例子,不僅有一般的復合函式f.g,而且還有在某一背景下復合的函式-monad,寫作f>>g,可以把》看成 .

,但是》在復合函式的時候,可以有額外的作用,比如可以根據f的返回值,來決定是否執行g (maybe monad)

3樓:祖與佔

曾經在到底什麼是函式式程式設計思維? 回答說函式程式設計思維就是追求可組合性, 那個時候已經有模糊的感覺到現在還沒能夠像其他答案一樣"簡單來說"就能說出來, 等我範疇論學好了再回來答

在C語言中什麼意思?

男兒本色 在C語言中代表的是取位址符。scanf d a 這代表的是像a這個變數中輸入乙個整型數,我們知道,計算機的資料是放在電腦的儲存單元中的,在變數被建立的時候,在儲存器中就被分配了一定的儲存空間,這時我們在給這個變數賦值的時候就是往這個儲存空間中放數值,也就是直接將數值寫到這個空間中,a就代表...

C 語言中,x 5 4 是什麼意思?

aro 先把 復合運算展開得到 x x 5 4 運算子優先順序排列 所以語句的邏輯是這樣的 x先加5再和4比較看是不是相等然後再把比較結果 0或1 賦給x x x 5 4 在專案中這麼寫,不怕別人打你麼。規規矩矩的寫不好麼。學習倒是可以學習。只不過這種奇淫技巧完全可以蛋疼的時候看。 匯智動力IT學院...

C語言中 aPtr 是什麼意思?其中aPtr是變數a的指標。?

MHY 如果把每個記憶體單元比作乙個房間,那麼它們的位址就是門牌號。指標變數中儲存的是其他變數的位址,即房間內存放的是其他房間的門牌號。例如有變數int a 2,其位址為0x402000,則a代表a的內容,為2 a代表取a的位址,為0x402000 定義指標int p a,則p的內容是a的位址0x4...