溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python函數(shù)式和Ruby的相關(guān)技術(shù)的比較過程

發(fā)布時(shí)間:2021-10-28 16:36:13 來源:億速云 閱讀:106 作者:柒染 欄目:編程語言

這期內(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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI