[問題] 函數與交換率
大家好,今天在寫程式時,才突然發現,有些合成函數具有\
交換律,有一些合成函數則不具有交換律,但卻想不通為什\
麼會如此?希望能獲得關鍵字,感謝。
舉個例子來說。
(以下用 py3k 做範例)
------------------------------------------------------
下面這個例子是能交換的合成函數。
#reverse 用來將字串反轉。
def reverse(x,y = ""):
try:
y = x[0] + y
return reverse( x[1:], y )
except:
return y
#transform 用來替換字串
def transform(x,y = ""):
try:
if x[0] == "A": y += "T"
elif x[0] == "T": y += "A"
elif x[0] == "G": y += "C"
else: y += "G"
return transform( x[1:],y )
except:
return y
DNA = "UGA"
reverse( transform( DNA )) == transform( reverse( DNA ))
---------------------------------------------------------
#以下是不能交換的例子
def sub1(x):
return x-1
def sq(x):
return x**2
x = 2
# 特例為 x = 1 時,
# sub1( sq( x )) == sq( sub1( x ))
sub1( sq( x )) != sq( sub1( x ))
----------------------------------------------------------
為什麼同樣都是函數,第一個例子具有交換律,而第二個卻沒有呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.139.93
→
06/04 00:31, , 1F
06/04 00:31, 1F
已修正,感謝
→
06/04 00:36, , 2F
06/04 00:36, 2F
推
06/04 00:51, , 3F
06/04 00:51, 3F
→
06/04 00:52, , 4F
06/04 00:52, 4F
感謝提供關鍵字。
※ 編輯: drm343 來自: 59.113.137.132 (06/04 12:05)
推
06/04 20:44, , 5F
06/04 20:44, 5F
→
06/04 20:44, , 6F
06/04 20:44, 6F
→
06/08 09:01, , 7F
06/08 09:01, 7F
→
06/08 09:01, , 8F
06/08 09:01, 8F
推
06/09 22:23, , 9F
06/09 22:23, 9F
喔喔!原來我整個弄錯名詞了,對不起。
※ 編輯: drm343 來自: 59.113.136.109 (06/09 22:56)
PLT 近期熱門文章
PTT數位生活區 即時熱門文章