開発環境
- OS: macOS High Sierra - Apple
- Text Editor: Emacs
- プログラミング言語: Python3
https://t.co/eIYtga4JgP
— \助けよや/ (@yoya) 2018年9月6日
python でこんな事出来るのか。。[〜] と (〜) の違いになかなか気づかなくてバージョンで違うのかなとか色々ずれた事考えてた。これは使えそう。。
Let's遅延評価 pic.twitter.com/qJ4NxvFMLD
— sp4ghet@9/15 VJするぞい (@sp4ghet) 2018年9月5日
リストのままでも同じことをしたくなったので書いてみた。
コード(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 コメント:
コメントを投稿