開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
昔から言われてるけど一向に変わらないですね… https://t.co/Mn0G8FpCgf
— techno_tanoC📕 (@techno_tanoC) 2017年7月19日
上を下のように書ける時代は来ないんですか… pic.twitter.com/r9FADXG2pQ
— Stringamp@8/19mxmzr (@stringamp) 2017年7月19日
こんな感じのがあれば嬉しいのかなぁと思ってとりあえずコード書いてみた。
コード(Emacs)
Python 3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class klist:
def __init__(self, items):
self.items = list(items)
def map(self, f):
return klist(__builtins__.map(f, self.items))
def sorted(self):
return klist(__builtins__.sorted(self.items))
def __str__(self):
return str(self.items)
class Movie:
def __init__(self, id):
self.id = id
if __name__ == '__main__':
movies = klist([Movie(5), Movie(1), Movie(4), Movie(2), Movie(3)])
ids = movies.map(lambda m: m.id).sorted()
print(ids)
入出力結果(Terminal, IPython)
$ ./sample.py [1, 2, 3, 4, 5] $
ただPython では、あまり深い入れ子(ネスト)は読みにくくなりよく無いって考え方に当てはめると、現状では以下のような書き方がいいとされてるのかも。
Python 3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class Movie:
def __init__(self, id):
self.id = id
if __name__ == '__main__':
movies = [Movie(5), Movie(1), Movie(4), Movie(2), Movie(3)]
ids = list(map(lambda m: m.id, movies))
sorted_ids = sorted(ids)
print(ids)
print(sorted_ids)
入出力結果(Terminal, IPython)
$ ./sample.py [5, 1, 4, 2, 3] [1, 2, 3, 4, 5] $
0 コメント:
コメントを投稿