如何學會函數語言程式設計,為什麼要學函數語言程式設計

2024-12-27 17:30:07 字數 2445 閱讀 9171

1樓:網友

純函式唯一的輸入是它的引數,唯一的輸出是它的返回值。如果你以前從未接觸過這個概念,你會以為所有的函式都是純正的。畢竟,所有的函式都是接受乙個或多個輸入值,返回乙個輸出值。

但在某些傳統程式設計中,經常會有一些外來的資訊流入或流出函式。例如,乙個不規範的函式有可能會依賴乙個全域性變數或一些類成員資料。在這種情況下,函式的行為並不完全決定於它的引數值。

相似的,乙個不規範的函式有可能會更改乙個全域性變數或修改資料庫。這種情況下,函式除了返回值外,還會附帶一些額外操作。

你可以用任何語言寫出純函式,只是有些語言容易寫,有些語言寫起來比較複雜。例如,沒有人會把fortran當作一種函式式語言,但有些人(

m. j. d. powell

卻強制自己在fortran裡要寫純函式。

你可以一直使用純函式。但如果你想把乙個值放到資料庫裡,光通過純函式是實現不了的。或者當你想呼叫乙個隨機數發生器時,你可不想它保持親系透徹性每次都返回相同的值。

但是,在可以用到純函式的時候,你應該使用純函式,用純函式來消除越界聯絡。完全的純函式程式是不現實的;有人建議說最佳的純度係數應該是 85% 。

那麼,為什麼程式設計師不大量的使用純函式呢?乙個原因是,純函式需要更長的參數列。在物件導向的程式語言裡,物件可以隱式的依賴物件狀態來減少引數數量。

對於這更簡潔的方法介面,你付出的代價是,你無法只通過方法本身來理解這個方法。呼叫這個方法時你還需要知道物件的狀態。為了獲得更短的方法介面而放棄親系透徹性值不值得?

這依賴於你的上下文環境和你的風格,按我的觀點,我更願意用更長的函式介面來換取更純的函式。

為什麼要學函數語言程式設計

2樓:

以 c 語言源程式為例,使用函式式的程式設計風格最重要的是有利於程式的除錯、而且程式的可讀性也很好、程式設計思路很清楚!!以下面的源程式進行講解就一目瞭然了。

在以下題目中,三次用到了求階乘的**(a!、(a-b)!、b!,現在使用呼叫子函式的程式設計風格,程式簡潔明瞭、且可讀性很強。如果不使用函數語言程式設計,那麼求階乘部分的**就必須要重複編寫三次。你說到底是哪一種程式設計風格好呢?

例如:求組合數c(a,b) =a!/(a-b)! b! )其源程式如下:

int jie_cheng( int ) 求 n! 的子函式 */

void main( )

int a = 0,b = 0 , c = 0 ;

scanf("%d %d",&a,&b); 輸入兩個整數 a、b */

c = jie_cheng(a) /jie_cheng(a-b)*jiecheng(b)) 根據公式求組合數 c */

printf("zu he shu c is: %d", c) ;

int jie_cheng(int num) /子函式呼叫 */

if( num ==1)

return 1 ;

elsereturn num*jie_cheng(num-1) ;

如何打造「函式式」程式語言

3樓:匿名使用者

嚴格的函式式語言是沒有變數的賦值行為,講究的是引用透明性,也就是說乙個表示式返回乙個值,那麼它永遠返回乙個值,不會變。

函式式語言常常和遞迴聯絡起來,這是因為一般的迴圈結構,除非 while(1) 這種死迴圈,都是和表示式的變動關聯起來的,比如說 while(n) 就是要不斷修改 n 的值直到 n == 0,在函式式語言中是必須避免的。

遞迴通過呼叫函式的引數不同,來達到資料的變動卻不破壞引用透明性。並且如果加入尾遞迴優化,那麼遞迴的效能和迴圈是等價的。

函式式語言另外乙個特點,也是乙個語言能自稱函式式的關鍵所在是,函式是「一等公民」,這是說能像運算元據一樣在函式中動態生成新的函式,可以將函式賦值給變數,可以把函式放到資料結構裡,可以把函式作為引數和返回值。

達到這乙個特性的語言都可以寬泛的稱作函數語言程式設計語言,並不和過程式和麵向物件衝突。

怎麼學會函式

4樓:網友

初中的函式會比較簡單。主要是一次函式和二次函式。

一次函式的內容普遍比較簡單,解題技巧主要是設函式解析式,然後根據提設找出相應的條件求解。

建議提前預習,然後記清楚y=kx+b(k不等於0)在k>0,b>0; k>0,b<0; k<0,b>0; k<0,b<0的影象。

二次函式會比較難一些 y=ax^2+bx+c(a不等於0)

建議還是先從影象開始,注意a>0和a<0的情況,還有對稱軸x=-b/2a在y軸左側和右側的時候有什麼區別。

根據題目需要靈活選擇頂點式y=a(x-m)^2+n、兩點式y=a(x-x1)(x-x2)、以及一般式y=ax^2+bx+c解答。

函式函式,自然是影象最重要,考試大題基本上都是函式+幾何的大綜合。

所以要熟練地掌握函式影象,函式性質,然後刷題……

ps:建議先學好一元二次方程組+一元二次方程,熟練掌握後觀察方程與影象的關係,會有不小的收穫。

學廚師基本要學會什麼,學廚師的基本要先學會什麼

刀工,是廚師必備的基本功,也是考驗一名廚師是否合格優秀的重要標準。對一名廚師來說,刀工的熟練程度不僅影響著菜餚的視覺,同時也影響著菜餚的味覺。作為一名優秀的廚師,必須擁有熟練的刀工技能,能夠粗細得宜,信手拈來。首先要學得就是刀工技能,每一天在老師的講解中不斷練習,摸索學廚的入門之道,而刀工這門技術,...

為什麼要學會示弱?為什麼要示弱

對於處境不如自己的人適當的示弱可以將其不滿的心理減少到最低程度。有一位記者去拜訪一位政治家,目的是獲得有關他的一些醜聞資料。然而,還來不及寒暄,這位政治家就對想質問的記者制止說 時間還長得很,我們可以慢慢談。記者對政治家這種從容不迫的態度大感意外。不多時,秘書將咖啡端上桌來,這位政治家端起咖啡喝了一...

為什麼要學會合作

合作就是互相配合,共同把事情做好。世界上有許多事情,只有通過人與人之間的相互合作才能完成。一個人學會了與別人合作,也就獲得了開啟成功之門的鑰匙。所以,人們常說 小合作有小成就,大合作有大成就,不合作就很難有什麼成就。這是非常寶貴的人生道理,我們應該牢牢記住。在一本雜誌上我曾經看到 大雁有一種合作的本...