作者cgcluck (Never give up!)
看板Python
標題[問題] 函式程設中鞣制(Curry)的概念
時間Thu Jan 3 04:45:42 2013
Hello, everyone
我是python的初學者,以下是我練習的語法
> > > d e f f u n c ( ) :
. . . x = 1 0
. . . d e f g e t X ( ) :
. . . r e t u r n x
. . . d e f s e t X ( n ) :
. . . x = n
. . . r e t u r n ( g e t X , s e t X )
. . .
> > > g e t X , s e t X = f u n c ( )
> > > g e t X ( )
1 0
> > > s e t X ( 2 0 )
> > > g e t X ( )
1 0
> > >
我不太懂的是當setX(20),為什麼getX()=10?
我認為我應該還是不懂curry的概念~煩請高手幫我解答以上的問題。感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 143.215.126.20
→ mars90226:你這個跟curry無關吧= = 01/03 09:56
→ tcling:你想做的是closure,curry是函數的特化。 01/03 10:59
推 beatitude:如同版友說的, 你試圖做的效果是closure, 之所以會這樣 01/03 20:58
→ beatitude:setX內的x是local variable, 造成variable shadowing 01/03 20:59