開発環境
- 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 コメント:
コメントを投稿