您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Python函數(shù)式和Ruby的相關(guān)技術(shù)的比較過程,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Python函數(shù)式在平時(shí)的使用中有很多有意思的事情。下面我們就詳細(xì)的看看Python函數(shù)式和Ruby之間的技術(shù)比較。下面我們就來看看如何進(jìn)行應(yīng)用。希望大家有所收獲。
Python函數(shù)式編程到底有什么用呢? 我想實(shí)際的好處就是可以將更好的描述問題本身,而不是描述解決問題的操作步驟??匆粋€(gè)具體的例子:
問題:一個(gè)列表;對(duì)每一個(gè)元素平方;將平方后的數(shù)如果除3的余數(shù)為1則從列表中除去。
看解決的方法:
1. 傳統(tǒng)過程式(Python函數(shù)式)
>>> s = [1,2,3] >>> d = [] >>> for i in s: if i * i % 3 != 1: d.append(i * i) >>> d [9] >>>
2. 傳統(tǒng)函數(shù)式(Lisp)
(remove-if (lambda (n) (= (mod n 3) 1)) (mapcar (lambda (n) (* n n)) '(1 2 3)))
可以看出,函數(shù)式的程序很好的對(duì)應(yīng)了我們所提問題的兩個(gè)步驟,分別用 mapcar, remove-if來實(shí)現(xiàn)。不過Lisp的程序確實(shí)不太好讀,我們用python 和 ruby 來改進(jìn)一下:
3. Python函數(shù)式:
>>> filter(lambda n: n % 3 != 1, map(lambda n:n*n, [1,2,3])) [9]
4. Ruby 函數(shù)式:
[1,2,3].map {|n| n * n}.reject{|n| n % 3 == 1} => [9]
經(jīng)過比較,ruby的最為簡潔,而且與問題描述對(duì)應(yīng)的最自然。
上述就是小編為大家分享的Python函數(shù)式和Ruby的相關(guān)技術(shù)的比較過程了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。