èšäºã®å 容ã«äžåºåãã€ããã®ã§ãæŒç¿ã«å ããŠæ¬ã³ã©ã ãæãããšãšããŸãããä»ãŸã§ã¯Pythonããé çªã«åœä»€ã䞊ã¹ãŠå¶åŸ¡ãããæç¶ãåèšèªããšããŠäœ¿ã£ãŠããŸãããã以åŸã¯ããªããžã§ã¯ãæåèšèªããšããŠäœ¿ãã¯ãããŸãã
ãªããžã§ã¯ãæååèšèªãšã¯ãªããããšããè©±ã¯æ¬¡å以éã«è²ããä»åã¯æç¶ãåèšèªããªããžã§ã¯ãåæåèšèªã«äžŠãã§ãã䜿ãããã颿°åèšèªãã«ã€ããŠåãæ±ããããšæããŸãã
Pythonã颿°åèšèªã®ææ³ãäžéšåã蟌ãã§ããã®ã§ã颿°åãã©ã®ãããªãã®ãåŠã¶ããšã§ãæ°ããã颿°åã«è¿ãPythonã®ææ³ããçè§£ãããããªãã§ãããããŸããPythonã«éããããŸããŸãªèšèªã§ã颿°åã®ã¡ãªãããã匷ãæèããŠèªåã®ã³ãŒãã£ã³ã°ã«ã«ãŒã«ã課ãããšã§ãã³ãŒããããé äžãªãã®ãšãªããããããŸããã
ãããã«ããã颿°åãç¥ã£ãŠæããããšã¯ãªããšæããŸãã®ã§ãæ°è»œã«èªãã§ããã ããã幞ãã§ãã
ããã°ã©ãã³ã°èšèªã®ãã©ãã€ã
äœåºŠããäŒãããŠããããã«ãæ©æ¢°ãã01ãããçè§£ã§ããªãäžæ¹ã§ã人éã¯ã01ããçè§£ãã¥ãããããæ©æ¢°ãšäººéã®éã«ããã°ã©ãã³ã°èšèªãæãããšã§ãæ©æ¢°ãå¶åŸ¡ããããããŠããã®ã§ããããããŠããã®ããã°ã©ãã³ã°èšèªã«ã¯ããŸããŸãªçš®é¡ãååšããä»ãŸã§åãæ±ã£ãCãJavaãPythonãšãã£ãèšèªã¯ãã®ãã¡ã®äžæ¡ãã§ãã
ãã®ããŸããŸãªããã°ã©ãã³ã°èšèªã¯ãããã€ãã®çš®é¡ã«åé¡ããããšãã§ããŸãã人éã話ãèšèªã¯ããã®ã«ãŒãã«ããããã€ãã«åé¡ã§ããåãã«ãŒãã®èšèªå士ã¯ããã»ã©å€§ããªéãããããŸãããããšãã°ãã©ãã³èªãã«ãŒããšãããšãŒãããç³»ã®èšèªã¯ãããã䌌éã£ãŠããããã®ææ³ã®å·®ç°ããè±èªã𿥿¬èªãšãã£ãæãç«ã¡ãéãèšèªã®å·®ç°ã«æ¯ã¹ããšãã¯ããã«å°ããã§ãã
ããã°ã©ãã³ã°èšèªããããšåãã§ãããã®èšèªãã©ã®ããã«ããŠéçºããããããšãã£ãããšã«ãã£ãŠãããã€ãã®çš®é¡ã«åé¡ã§ããŸãããã®å€§ãŸããªçš®é¡ã¯ã
- æç¶ãåèšèª
- ãªããžã§ã¯ãæåèšèª
- 颿°åèšèª
ã§ãããšäžè¬çã«ããããŠããŸã(ãã以å€ã«ãåŠè¡çãªåŽé¢ã匷ããã€ããŒãªèšèªãããã€ããããŸã)ã
æç¶ãåèšèªã¯ãä»ãŸã§Pythonã§ãã£ãŠãããããªãäžããäžã«ã³ãŒãããã¿æžãããŠããããšããã¹ã¿ã€ã«ã§èšè¿°ããŸãããªããžã§ã¯ãåæåèšèªã¯ãã®æç¶ãåèšèªã®é²åç³»ãšããããããäž¡è ã¯äŒŒéã£ãŠããŸãã
ãã ã颿°åèšèªã¯æç¶ãåèšèªãšç°ãªãææ³ã®ãã®ãšã§éçºãããŠããã®ã§ãæç¶ãåãšããªããžã§ã¯ãæååãšããæ¬æ¥ã¯äŒŒãŠãããã®ã§ã¯ãããŸãããå®éã«ã¯ãå®å šã«çŽç²ããªé¢æ°åèšèªã¯ããŸããªãã匷ãæç¶ãåèšèªã®åœ±é¿ãåããŠããããšãå€ãã®ã§ããã©(ç¬)ã
ãã®ããã°ã©ãã³ã°èšèªã®åé¡é¢ä¿ã以äžã®å³ã«èšèŒããŸãã
äžèšå³ã§ã¯ããªããžã§ã¯ãæååèšèªãšé¢æ°åèšèªã®éã«ããã€ããªããåèšèªããšãããã®ããããŸãããããã¯äŸ¿å®çã«ããåŒãã§ããã ãã§ãããå®éã¯ãªããžã§ã¯ãæååèšèªã«é¢æ°åã®ç¹åŸŽãå ãããã®ã«ããããŸããå¯äœçšãå°ãªãçè«äžäžŠååãããã颿°åã®ã¡ãªããããªããžã§ã¯ãæåã«æã¡èŸŒããšããã®ã¯ãæšä»ã®ããŒã ãããããŸããã
æç¶ãåèšèªãããªããžã§ã¯ãæååèšèªãžã®é²åã«ã€ããŠã¯æ¬¡å以éã«æ±ããŸãããç°¡åã«ãã£ãŠããŸããšãã³ãŒããæŽçããŠå€§èŠæš¡ãªéçºã容æã«ããããã®æ¹è¯ãããããŠããŸãããã ããªããªããžã§ã¯ãæååèšèªãããã®æã«åãã§é¢æ°åã®ç¹åŸŽãåã蟌ãããšãããšã颿°åã«ã¯é¢æ°åãªãã§ã¯ã®åŒ·ã¿ãããããã§ãã
ãã€ããšãã話ã¯ãããããã«ããŠãå®éã«ä»åã®ããŒãã®ã²ãšã€ã§ãã颿°åã®èšèªãã©ã®ãããªãã®ãèŠãŠãããŸãããã
颿°åèšèªã®ç¹åŸŽ
颿°åèšèªã«ãããã€ãçš®é¡ããããæå€ã®æãæåãªãã®ã¯Lispã§ãããã以å€ã«ãHaskelãOcamlããã®ã»ãããŸããŸãªèšèªããããŸãããä»åã¯ErlangãšåŒã°ããŠããèšèªã䜿ã£ãŠèª¬æããŸããErlang以å€ã¯ããµã³ãã«çšåºŠããçµãã ããšããªãã®ã§ããããããŸãã(ç¬)ã
Erlangã¯é¢æ°åèšèªã§ãããã®ã®ãæ¯èŒçæç¶ãåèšèªã®ææ³ã«äŒŒãŠããèšèªã§ãã颿°åèšèªãšããŠã®åŽé¢ããããäžŠåæ§ãé 奿§ã«åªããŠããèšèªãšããŠæåãããããŸãããå ·äœçã«ã¯ãActorã¢ãã«ãšåŒã°ããŠãããé«éã§è³æºç«¶åãçºçãã«ãããã«ãã¹ã¬ãããã®ä»çµã¿ããã£ãŠãããããã䜿ã£ãŠå€§éã®ã¹ã¬ããã䜿ããããªããã°ã©ã ãäœãå Žåã«éžã°ããããšãå€ãã§ãã
ããšãã°ãTwitterãµãŒããŒå®è£ ã®ã³ã¢éšåã«äœ¿ãããŠãããšãã話ãèããŸããã»ãã«ã忣ã·ã¹ãã ãã¡ãã»ãŒãžã³ã°ç³»ã®å®è£ ã«äœ¿ãããããšãæ¯èŒçå€ããšæããŸããå ã»ã©ã®Hybridåèšèªã«åé¡ãããScalaãšããèšèªã®AkkaãšäŒŒãŠããŸãã
å®éãç§ã倧åŠã®åè«ã§P2Pã®ããŒãéã®æ¥ç¶ããããžã®æå¹æ§ãæ€èšŒããããã®ã·ãã¥ã¬ãŒã¿ãæžããã®ã§ãããããã«Erlangã䜿ããŸãããããŒãã«èŠç«ãŠãæ°åãæ°äžã®ããã»ã¹ããNetworkéä¿¡ã«èŠç«ãŠãã¡ãã»ãŒãžã³ã°ã倧éã«è¡ããšããã³ãŒããæžããŸããããåããããªããšãJavaã®çµã¿èŸŒã¿ã®ã¹ã¬ããã©ã€ãã©ãªã§ããå Žåã«æ¯ã¹ããšéåžžã«ç°¡åãªã¢ã«ãŽãªãºã ã§å®è£ ã§ããããšãèŠããŠããŸãã
ããŠã颿°åã®èšèªãšããããããErlangãžè©±ãè±ç·ããŠããŠããã®ã§è©±é¡ãæ»ããŸããããã颿°åã®ç¹åŸŽãäžèšã§ãã£ãŠããŸããšä»¥äžã®ãããªãã®ã«ãªããŸãã
- å¯äœçšãçºçãã«ããã³ãŒã
- 颿°ã«ãªãã§ããããã
ããããç°¡åã«è§£èª¬ããŠã¿ãŸãã
å¯äœçšãæžãã
èšèªã«ãã£ãŠå€ãã£ãŠããããšæããŸãããå¯äœçšãæžããããã®å®è£ ã§äžçªæåãªã®ã¯ã倿°ã«åä»£å ¥ã§ããªãããšãããã®ã§ã¯ãªãããšæããŸãã
ããšãã°Pythonã ãšã
>>> num = 5
>>> num = 10
ãšããã³ãŒãã«åé¡ã¯ãããŸããããErlangã ãšãããšåçã®ããšãããã³ãŒãã¯ä»¥äžã®ãã®ãšãªããŸã(Erlangã®ã·ã§ã«ã䜿ã£ãŠããŸã)ã
Eshell V6.3 (abort with ^G)
1> Num = 5.
5
2> Num = 10.
** exception error: no match of right hand side value 10
è£è¶³:
- 倿°ã¯å€§æåããå§ãŸã
- ææ«ã® . ã¯åŒã®çµããã瀺ã(æåã¯CãJavaã®;ãšåããšããèªèã§OK)
- 倿°ã®åã¯Pythonãšåããåçã«æ±ºãŸã
åä»£å ¥ãããããšããŠãšã©ãŒãåºãŠããŸããã
æ£ç¢ºã«ã¯ä»£å ¥ãšããããããã¿ãŒã³ãããã®æ©æ§ã«èµ·å ããŠãšã©ãŒãçºçããŠããã®ã§ããããErlangã®å€æ°ã«ã¯å€ã1床ããä»£å ¥ã§ããªãããšæã£ãŠããã ããã°ãããšæããŸãã倿°Aã®äžèº«ã倿Žãããå Žåã¯å€æ°Bãæ°ããçšæããŠãããå¿ èŠããããŸãã
倿°ã䜿ããŸãããªããšãããã¡ãªãããããã®ã§ãããããã¯å€æ°ã®äžèº«ãåžžã«äžå®ã§ããããšãä¿èšŒãããšããã¡ãªããããããŸããããšãã°ãæå³ããªãç®æããå å®¹ãæžãæãããã(ãã°)ãã¯çºçããªãã®ã§ãèªåãäžåºŠèšå®ããå€ã¯æåŸãŸã§æ®ãç¶ããŸãããã®ããããããã°ãªã©ãããããå Žåãå€ãããšæããŸãã
颿°ã«ãªãã§ããããã
ã颿°åããšããååãããããããã«ã颿°åèšèªã§ã¯ãšã«ãã颿°ã«ãªãã§ãããããŸããããšãã°ã颿°ã倿°ã«ä»£å ¥ããããé«é颿°ãã¯ããŒãžã£ãŒãšãã£ãæŠå¿µãå€çšããŸãã
CãJava(æè¿ã®ãã®ã¯å¥ã§ãã)ã§ã¯ããããããããã£ãæŠå¿µã¯äœ¿ããªãããéåžžã«äœ¿ãã«ãããã®ãšãªã£ãŠããŸããPythonãJavaScriptãšãã£ããã¹ã¯ãªããç³»ãã®èšèªã¯ãããã®æŠå¿µãå©çšã§ããŸããããããŸã§ããªãã±çãªåŽé¢ã匷ãã§ãã颿°åã¯ãããã®æ©èœãåé¢ã«æŒãåºããŠããŠããããã«æããŸãã
ããšãã°ãæ°åããå¶æ°ãèŠã€ããããã°ã©ã ãæžããšããŸããããPythonã ãšæ¬¡ã®ããã«ãªããšæããŸãã
even_list = []
for i in range(10):
if(i % 2 == 0):
even_list.append(i)
print(even_list)
ãããErlangã ãšãããšãã°ä»¥äžã®ããã«æžããŸãã
1> Is_even = fun(X) -> X rem 2 =:= 0 end.
#Fun<erl_eval.6.90072148>
2> Even_list = lists:filter(Is_even, lists:seq(0, 9)).
[0,2,4,6,8]
ãã®Erlangã®ã³ãŒãããªã«ããã£ãŠããããšãããšã1è¡ç®ã§åŒæ°Xãå¶æ°ã奿°ããå€å®ãã颿°ãäœãã2è¡ç®ã§ããã[0,1,2..,8,9]ãšãããªã¹ãã«é©çšããŠå€å®ãTrueãšãªã£ãèŠçŽ ã ããåãåºããŠããŸãããªããšããããPythonã®æç¶ãåã®ã³ãŒããšå šç¶éããŸããã颿°ã§ãªã¹ãããã£ã«ã¿ããŠãããŠããŸãã
é·ã ãšErlangã®èª¬æãããã®ãé£èŒã®è¶£æšããå€ããã®ã§ãã®ãããã§åãäžããããšæããŸãããèŠããã«foræãªã©ã§ããŒã¿ãå¶åŸ¡ããã®ã§ã¯ãªããããŒã¿æ§é ã«å¯ŸããŠå¶åŸ¡ãé©çšãããããªåŠçãããŸããå人çãªèŠè§£ã§ãããæç¶ãåèšèªã¯ãå¶åŸ¡ããããããŒã¿ã¯äºã®æ¬¡ããšãããããªææ³ãããã颿°åã¯ããŸãããŒã¿ããããããã«åŠçãé©çšããšãããããªææ³ãããããã«æããŸãã
ããErlangã«èå³ãããã°ãç§ãåŠçã®é ã«äœã£ããµã€ãã§ãäžèªããŠããã ãããšå¹žãã§ããæŽæ°ã¯èŠäºã«æ¢ãŸã£ãŠããŸãã(ç¬)ã
Pythonã®é¢æ°åã«è¿ãåŽé¢
ããŠãé·ã ãšé¢æ°åèšèªã«ã€ããŠæžããŠããŸãããã話é¡ãPythonã«æ»ããŸããããå®ã¯å ã»ã©ãããã£ãšäŒããŸããããPythonãªã©ã®ã¹ã¯ãªããç³»èšèªã¯ã颿°åã«è¿ãããšãããçšåºŠã§ããŸããããã¶ãåã®é¢æ°ã®åã§ãé«é颿°ããšãã¯ããŒãžã£ãã«ã€ããŠã話ããŸãããããããæ¬æ¥ã¯é¢æ°åã®æŠå¿µã§ããä»åã¯ãã®2ã€ä»¥å€ã®é¢æ°åã«è¿ãæ©èœã玹ä»ããŠã¿ãããšæããŸãã
ããã§ã¯ã
- lambdaåŒ
- 颿°ãé©çšãããªã¹ãåŠç(map, filter, reduce)
- ãªã¹ãå å 衚èš
ã«ã€ããŠæ±ããŸãã
ãªãããããã¯åå¿è ãå¿ ããã䜿ãããªããå¿ èŠãããæ©èœã§ã¯ãããŸããã颿°åã§ã¯æšæºçãªæ©èœã§ãããæç¶ãåããªããžã§ã¯ãæååã§ã¯å®è£ ãããŠããªãå ŽåããããŸãã
lambdaåŒ
ä»ãŸã§ã®é¢æ°ã¯äž»ã«defã䜿ã£ãŠå®£èšããŠããŸããããäœ¿ãæšãŠã®é¢æ°ã«é¢ããŠã¯ç¹ã«ååãä»ããã«ãç¡å颿°ããšããŠå©çšããã°ããã§ããlambda(ã©ã ã)åŒã¯ç¡å颿°ãäœãèšæ³ã®ã²ãšã€ã§ãã
lambdaåŒã¯ãlambda åŒæ°: åŒããšãã圢ã§é¢æ°ãæžããŸããdefã«ãã颿°ã®å®£èšãšç°ãªãã颿°åããªãããšãããããŸãããã ãããç¡å颿°ããªã®ã§ãã
å®éã«å©çšããŠã¿ãŸãã
adder = lambda x,y : x + y
print(adder(5, 10))
xãšyã®2ã€ã®åŒæ°ããšãããã®åèšå€ãè¿ã颿°ãäœã£ãŠããŸãããããŠããã倿°adderã«ä»£å ¥ããŠããŸãã
lamdaãçæãã颿°ããå€ãã§ãã®ã§ããªã¹ããªã©ã«æ ŒçŽããããšãã§ããŸããããã»ã©äœ¿ãéã¯ãªããããããŸãããã以äžã®ããã«è€æ°åŠçãé£ç¶ã§å®æœãããå Žåã«ãšãã©ã䜿ããŸãã
funcs = [(lambda x,y:x+y), (lambda x,y:x-y), (lambda x,y:x*y),(lambda x,y:x**y)]
for fun in funcs:
print(fun(5,10))
å人çã«ã¯Pythonã§ã¯lambdaåŒã¯ããã»ã©å€ã䜿ããŸãããäžèšã®ãããªç°¡åãªé¢æ°ããã®å Žéãã§äœ¿ãã®ã«ãããŠã¯äŸ¿å©ã§ãããããã§ãªãéãã¯defã§å®£èšãããããå¿ èŠã«å¿ããŠåŒã³åºãããšã®ã»ãããããããããããããŸããã
ããšãã°äžèšã®2çªç®ã®lambdaã®ãµã³ãã«ã¯ä»¥äžã®ããã«æžãçŽããŸãã
def fun1(x,y):
return x + y
def fun2(x,y):
return x * y
def fun3(x,y):
return x ** y
funcs = [fun1, fun2, fun3]
for fun in funcs:
print(fun(5,10))
defã䜿ããšäžå¿ èŠã«å®£èšæ°ãå¢ãããŠããŸããŸãããlambdaã§è€éãªåŠçãæžããšéåžžã«èŠã¥ããã§ããããããã®ã¡ãªããããã¡ãªãããèããŠé©åã«å©çšããå¿ èŠããããŸããäžè¬çã«ã¯åŠçã®å 容ãè€éã§ããã°defã§å®£èšããç°¡åãªå Žåã¯lambdaã§ãã®å Žã§å©çšãã圢ã«ãªãããšæããŸãã
ã¡ãªã¿ã«ãdefã§å®£èšãã颿°ãlambdaåŒãã颿°åãšå€å®ãããŸãã
def check_even(x):
return x%2==0
fun = lambda x:x%2==0
print(type(check_even))
print(type(fun))
# <type 'function'>
# <type 'function'>
lambdaåŒã¯ããããã話ããfilterãmapãreduceãèªäœã®é«é颿°ããããã¯GUIã®ã©ã€ãã©ãªãªã©ã§äœ¿ãããšãå€ãã§ãã
filter
Erlangã§ãªã¹ãã«å¯ŸããŠfilterããããåŠçã玹ä»ããŸãããåãããšãPythonã§å®è¡ããããšãã§ããŸãã
ãŸãæåã«filterãæ±ããŸããããã¯Erlangã®äŸãšåãããã«ãããç¹å®ã®ãªã¹ãã«å¯ŸããŠé¢æ°ãé©çšãããšã颿°ãTrueãè¿ãèŠçŽ ã®ã¿ã®ãªã¹ããè¿ããšãããã®ã§ãã
ãã£ããã³ãŒãã瀺ããŸãã
fun = lambda x:x%2 == 0
num_list = range(10)
even_list = filter(fun, num_list)
print(even_list)
# [0, 2, 4, 6, 8]
filter颿°ã®ç¬¬äžåŒæ°ã«ã
- åŒæ°ãã²ãšã€åãåã
- Boolã®è¿ãå€ãè¿ã
lamda颿°ãæž¡ãã第äºåŒæ°ã«ãªã¹ããæž¡ããŸããfilterã¯ç¬¬äºåŒæ°ã®ãªã¹ãã®åèŠçŽ ã«å¯ŸããŠé¢æ°ãé©çšããTrueãšãªããã®ã ãã§æ§æããããªã¹ããè¿ããŸãã
ãªããäžèšãµã³ãã«ã¯æ¬æ¥ã§ããã°ä»¥äžã®ããã«äžè¡ã§æžãã®ãæ®éã§ããäžè¡ã§æžããããªããªãlambdaã¯äœ¿ããªãã»ãããããããããŸããã
even_list = filter(lambda x:x%2 == 0, range(10))
filterãé©çšããŠãããšã®ãªã¹ãã«ã¯åœ±é¿ã¯ãããŸããããã®ãããå¯äœçšã®ãªãã³ãŒããšãªããŸãã
map
次ã«map颿°ã§ãããã¡ãã¯ãªã¹ãã®èŠçŽ ã«é¢æ°ãé©çšããŠãããšãããã®ã§ãããã£ãŠããããšèªäœã¯é£ãããªãã®ã§ããã¡ããäŸã瀺ããŸãã
num_list1 = range(10)
num_list2 = map(lambda x:x*2, num_list1)
print(num_list1)
print(num_list2)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
第äºåŒæ°ã®ãªã¹ãã®èŠçŽ ã«å¯ŸããŠã第äžåŒæ°ã«æž¡ããã颿°ãé©çšãã颿°ã®è¿ãå€ããªã¹ãã«ããŠè¿ããŠããŸãã
reduce
æåŸã«reduceã§ããããã¯ãããã¿èŸŒã¿ããšåŒã°ããåŠçã§ãå¥èšèªã ãšfoldãªã©ãšããåŒã³æ¹ãããŠãããããããŸãããmapãfilterã«æ¯ã¹ããšã¡ãã£ãšè€éã§ãããã»ã©å©çšå Žé¢ã¯å€ããªããšæããŸãã
foldã®åŠçæŠå¿µã以äžã®å³ã«èšããŸãã
å³ãèŠãŠããããšãããããã«ããªã¹ãã®ãèŠçŽ Nçªç®ã®åŠççµæãN + 1çªç®ã§å©çšããšããããšããªã¹ãã®å é ããæ«å°ŸãŸã§ç¹°ãè¿ããŠãããæåŸã®åŠççµæãè¿ããšãããã®ã§ãã
æžãäžããšã
- 1çªç®ãš2çªç®ã®èŠçŽ ã䜿ãAãåŸã
- 3çªç®ãšAã䜿ãBãåŸã
- 4çªç®ãšBã䜿ãCãåŸã
- æåŸã®èŠçŽ ã§ãã5çªç®ãšCã䜿ãDãåŸã
- Dãè¿ã
ãšãããããªåãã«ãªããŸãã
ããã°ã©ã ãfilterãmapãšåãããã«ã颿°ã®å®çŸ©ããªã¹ãã«é©çšããŸãããã ã颿°ã®åŒæ°ã2ã€ã«ãªã£ãŠããã®ãä»ãŸã§ãšç°ãªãç¹ã§ãã
a = reduce((lambda x,y:x+y), range(1,7))
print(a)
# 21
ãªã¹ãã®äžããäœãã²ãšã€ã®èŠçŽ ãéžã¶ãšãããããªäœ¿ãæ¹ã«ã䟿å©ã§ããã®ãããªãšãã¯ä»¥äžã®ãããªã³ãŒããšãªããŸããä»åã¯ã2å€ãæ¯èŒããŠå€§ããæ¹ãè¿ãåŠçããç¹°ãè¿ããŠæå€§å€ãéžã¶ãšããåŠçãããŠããŸãããªããã©ã³ãã ãªæ°å€ã®ãªã¹ããäœæããããã«mapã䜿ã£ãŠããŸããããããäœ¿ãæ¹ã䟿å©ãããããŸããã
import random
def get_bigger(x,y):
if(x>y):
return x
else:
return y
random_list = map(lambda x:random.randint(0,100),range(9))
a = reduce(get_bigger, random_list)
print(random_list)
print(a)
# [43, 12, 70, 45, 24, 11, 16, 92, 59]
# 92
mapãfilterãšåãããããšã®ãªã¹ãã«ã¯å€æŽãå ããããŠããŸããããã®ããå¯äœçšã®å°ãªã颿°ã§ãã
ãªã¹ãå å 衚èš
æåŸã«ãªã¹ãå å 衚èšãæ±ããŸãããªã¹ãå å 衚èšã¯ãªã¹ããçæããããã®ç¹å¥ãªæžåŒã§ãããããmapãfilterãšäŒŒãäœ¿ãæ¹ãããŸãã
ãŸãmapã«è¿ãäœ¿ãæ¹ã§ããå ã»ã©ã®2åã«ããmapåŠçããªã¹ãå å 衚èšã§æžããšã以äžã®ããã«ãªããŸãã
list1 = range(10)
list2 = [x*2 for x in list1]
print(list1)
print(list2)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
2è¡ç®ããªã¹ãå å 衚èšã§ãããããèŠããšforæã®äœ¿ãæ¹ã«äŒŒãŠããŸããã"for x in ãªã¹ã"ãšãããšãxã«ãªã¹ãã®èŠçŽ ãå ¥ã£ãŠã«ãŒããåããŸãããã®åèŠçŽ xã«å¯ŸããŠ"x * 2"ãšããåŠçãããŠãªã¹ããäœæããŸãã
ãªã¹ãå å 衚èšãåªããŠãããšããã¯å çšã®mapåŠçã«å ããŠãåæã«filteråŠçãã§ããããšã§ããããšãã°å¶æ°ã ãæãåºããããã2åã«ãããšããããšãã§ããŸãã
list1 = range(10)
list2 = [x*2 for x in list1 if x%2==0]
print(list1)
print(list2)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# [0, 4, 8, 12, 16]
å ã»ã©ã®äŸãšã»ãšãã©åãã§ããã"for x in list1"ã®åŸã«ifæã远å ãããŠããã®ãããããŸããããã®ifæãTrueãšãªã£ãèŠçŽ ã ãããªã¹ãäœæã®å¯Ÿè±¡ãšãªããŸãã
ãããšèŠã§ãªã¹ãå å 衚èšã¯é£ããèŠãããããããŸãããã以äžã®ãããªæ§é ã«ãªã£ãŠãããšæãã°ãçè§£ãããããããããŸããã
ã¡ãªã¿ã«ãªã¹ãå å 衚èšã¯ãéåžžã®ã«ãŒãæãããé«éã«åäœããå Žåãå€ããšããããŠããŸããããã¯foræã®ããã«ScriptãšããŠäžè¡äžè¡åŠçãããã®ã§ã¯ãªããPythonå ã«ãããã€ããªã§ãªã¹ãã«å¯ŸããŠåŠçãæœãããã§ããèå³ãããã°ãã³ãããŒã¯ãåã£ãŠã¿ãŠããããããããŸãããã
次åãããªããžã§ã¯ãæåã«ã€ããŠåãæ±ããŸãããªããžã§ã¯ãæåã¯ãCèšèªããã°ã©ããC++ãJavaãåŠç¿ããéã®æå€§ã®é£æã ãšæããããããŠããŸããææ³ãšããŠã®ãªããžã§ã¯ãæåãšææ³ãšããŠã®ãªããžã§ã¯ãæåãäž¡æ¹ãã¹ã¿ãŒããªããšäœ¿ãããªãããšã¯é£ããããã ãšæããŸãã
äœé±ã«ãããã£ãŠãªããžã§ã¯ãæåã®è©±ãç¶ãã®ã§å€§å€ãããããŸãããããªããžã§ã¯ãæåã衚é¢çã«ã§ã¯ãªãæ¬è³ªããçè§£ã§ãããšäžçãå€ãããŸãããã²ãé 匵ã£ãŠæåŸãŸã§å®éããŠãã ããã
å·çè
玹ä»äŒè€è£äž(ITO Yuichi)ã·ã¹ã³ã·ã¹ãã ãºã§ã®æ¥åãšå€§åŠã§ã®ç 究掻åã§ã³ã³ãã¥ãŒã¿ãããã¯ãŒã¯ã«6幎é¢ãããå°éã¯L2/L3 Switching ãšããŒã¿ã»ã³ã¿ãŒé¢é£æè¡ããã³SDNãTACãšããŠã·ã¹ã³é¡§å®¢ã®ãã¯ãã«ã«ãµããŒãæ¥åã«åŸäºã瀟å åãã®ãœãããŠã§ã¢é¢é£ã®ãã¬ãŒãã³ã°ããã³ããŒã¿ã»ã³ã¿ãšSDNé¢ä¿ã®å€éšè¬æŒãªã©ãè¡ãã ããšããšä»®æ³ãããã¯ãŒã¯é¢é£æè¡ã®ç ç©¶éçºã«åŸäºããŠããããšãããããããã¯ãŒã¯ã ãã§ãªãããã°ã©ãã³ã°ãLinuxé¢é£æè¡ã«ã粟éãCisco瀟å å€åãã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããŒã«ã®éçºããè¶£å³ã§é³å£°åæåŠçã®ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãéçºã Cisco CCIE R&S, Red Hat Certified Engineer, Oracle Java Gold,2009幎床 IPA æªèžãããžã§ã¯ãæ¡æ 詳现(è±èª)ã¯ãã¡ã |
|---|


