2018年9月6日木曜日

開発環境

  • OS: macOS High Sierra - Apple
  • Text Editor: Emacs
  • プログラミング言語: Python3

リストのままでも同じことをしたくなったので書いてみた。

コード(Emacs)

Python 3

#!/usr/bin/env python3

a = [lambda x=i: print(x) for i in range(3)]

for i in a:
    i()

# リストはこんな感じに
# a = [lambda x=0: print(x),
#      lambda x=1: print(x),
#      lambda x=2: print(x)]

# ちなみにどういうこと?の方は
# a = [lambda: print(i),
#      lambda: print(i),
#      lambda: print(i)]
# この時点で i = 2

# Let's 遅延評価の方は
# for loop
# 1回目
# (lambda: print(0))()
# 2回目
# (lambda: print(1))()
# 3回目
# (lambda: print(2))()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample.py
0
1
2
$

0 コメント:

コメントを投稿