SlideShare a Scribd company logo
MacroPy がすごい
@kawachi
Who am I
• Software engineer
• Python は 2000年代に少し
• 普段は Scala を中心に活動してます
• Twitter: @kawachi
MacroPy
• Macros in Python: quasiquotes, case classes, LINQ
and more!
• https://github.com/lihaoyi/macropy
case class
case class
短いクラス定義!
文字列表現がいい感じ!
コンストラクタがいい感じ!
等値性比較がいい感じ!
__iter__ がいい感じ!
これが… こうなる!
String interpolation
これが…
こうなる
他にも魅力的なものが沢山
• Quick Lambda, Lazy, Interned
• Tracing, Smart Asserts, show_expanded
• MacroPEG
• Pattern Matching
• Tail-call Optimization
• PINQ to SQLAlchemy (LINQ clone)
• Pyxl Snippets (XML interpolation)
• JS Snippet (compiling Python snippets to Javascript)
いったいどうやってるの?
PEP 0302 — New Import Hooks
Parse 時に AST (抽象構文木) を変換してるらしい
PEP 0302 を使った他のもの
• zipimport (標準ライブラリ)
• Zip アーカイブからモジュールを import する
• hy http://docs.hylang.org
• Hy is a wonderful dialect of Lisp that’s
embedded in Python.
• lisp っぽく python が書ける
case class や

string interpolation が

最初から使えたら

いいのになあ…
case class も string interpolation も

最初から付いてる言語あります!
Scala
宣伝
http://scalamatsuri.org Twitter: #ScalaMatsuri

More Related Content

PPTX
goroutineはどうやって動いているのか
PDF
Dark vol4 for_slideshare
PDF
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
PDF
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
PPTX
bootsnapはどれくらい早くなるのか
PPTX
なぜか技術書典5で 3サークルの運営を同時にやった話
PPTX
Java使いにとっての関数
PPTX
なぜか技術書典5で 3サークルの運営をやってた話
goroutineはどうやって動いているのか
Dark vol4 for_slideshare
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~
bootsnapはどれくらい早くなるのか
なぜか技術書典5で 3サークルの運営を同時にやった話
Java使いにとっての関数
なぜか技術書典5で 3サークルの運営をやってた話

What's hot (9)

PDF
ENGINEER WORK!!
PDF
ActiveRecord::Enumのススメ
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
PDF
Introduction of SQL Anti-pattern at Phpcon Hokkaido
PPTX
マイクロサービスにおける 結果整合性との戦い
KEY
Scalaはじめました!
PPTX
Microservices Architecture の利点と欠点
PDF
ぼくのかんがえたさいきょうの Rails スタートダッシュ
PDF
Scala.js触ってみた
ENGINEER WORK!!
ActiveRecord::Enumのススメ
入社1年目のプログラミング初心者がSpringを学ぶための手引き
Introduction of SQL Anti-pattern at Phpcon Hokkaido
マイクロサービスにおける 結果整合性との戦い
Scalaはじめました!
Microservices Architecture の利点と欠点
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Scala.js触ってみた
Ad

Viewers also liked (20)

PDF
S01 t1 tsuji_pylearn_ut_01
PDF
S02 t1 sta_py_tsuji_0702_slides
PDF
S01 t4 wrapup
PDF
S01 t3 data_engineer
PDF
Python入門 : 4日間コース社内トレーニング
PDF
はじめてのReactiveCocoa
DOCX
PDF
S02 t0 get_started
PDF
S02 t3 python_study_web
PDF
S02 t4 wrapup
PDF
すごいHaskell読書会 第六章 発表資料
PDF
ウォーキングとゆっくり呼吸のすごい効果
PDF
S05_T0_orientation
PPT
14対話bot発表資料
PPTX
【アップロードテスト】データマイニング入門編_201501
PDF
PythonからV-Sido CONNECTで ロボットを操る ~ ハードウェアの絡んだ仕組みの制御を考える ~
PDF
Effective Numerical Computation in NumPy and SciPy
PDF
S02 t2 my_historyofpythonlearning
PDF
すごいVimでhaskellを書こう@なごやまつり
PDF
プラグインだけじゃない!そのままでもすごいvim
S01 t1 tsuji_pylearn_ut_01
S02 t1 sta_py_tsuji_0702_slides
S01 t4 wrapup
S01 t3 data_engineer
Python入門 : 4日間コース社内トレーニング
はじめてのReactiveCocoa
S02 t0 get_started
S02 t3 python_study_web
S02 t4 wrapup
すごいHaskell読書会 第六章 発表資料
ウォーキングとゆっくり呼吸のすごい効果
S05_T0_orientation
14対話bot発表資料
【アップロードテスト】データマイニング入門編_201501
PythonからV-Sido CONNECTで ロボットを操る ~ ハードウェアの絡んだ仕組みの制御を考える ~
Effective Numerical Computation in NumPy and SciPy
S02 t2 my_historyofpythonlearning
すごいVimでhaskellを書こう@なごやまつり
プラグインだけじゃない!そのままでもすごいvim
Ad

Similar to MacroPyがすごい (20)

PPTX
Futureのおまじないを理解する(LT)
PDF
捗るリコメンドシステムの裏事情(ハッカドール)
PDF
Pythonの非同期処理を始める前に
PDF
パーフェクト"Elixir情報収集"
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PDF
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
PDF
デザインパターンを用いたリファクタリング
PDF
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PDF
PythonによるWebスクレイピング入門
PPTX
Robot Framework (のSelenium2Libraryのお話)
PDF
Redux, Relay, HorizonあるいはElm
PPTX
Elasticsearch 20150107
PDF
20190410 cnjp rancher-flexvolume
PDF
Javakuche yono
PDF
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
PDF
Scrutinizer CIでPHPも静的解析 #phpstudy
PPTX
やさしいGitの内部構造 - yapcasia2013
PDF
Search on AWS - IVS CTO Night and Day 2016 Spring
PDF
20150228_渋谷Webエンジニア朝会LT資料
Futureのおまじないを理解する(LT)
捗るリコメンドシステムの裏事情(ハッカドール)
Pythonの非同期処理を始める前に
パーフェクト"Elixir情報収集"
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
デザインパターンを用いたリファクタリング
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonによるWebスクレイピング入門
Robot Framework (のSelenium2Libraryのお話)
Redux, Relay, HorizonあるいはElm
Elasticsearch 20150107
20190410 cnjp rancher-flexvolume
Javakuche yono
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Scrutinizer CIでPHPも静的解析 #phpstudy
やさしいGitの内部構造 - yapcasia2013
Search on AWS - IVS CTO Night and Day 2016 Spring
20150228_渋谷Webエンジニア朝会LT資料

More from Takashi Kawachi (12)

PDF
例外のlogを快適に
PDF
Silhouette intro
PDF
最小 Hello World! チャレンジ
PDF
Sbt doctest
PDF
Elastic beanstalk と Docker と Play
PDF
やさしいIteratee入門
PDF
Sbt lock1
PDF
Haskell超初心者勉強会20
PDF
Haskell超初心者勉強会17
PDF
Haskell超初心者勉強会14
PDF
Haskell超初心者勉強会11
PDF
Scalaでの例外処理
例外のlogを快適に
Silhouette intro
最小 Hello World! チャレンジ
Sbt doctest
Elastic beanstalk と Docker と Play
やさしいIteratee入門
Sbt lock1
Haskell超初心者勉強会20
Haskell超初心者勉強会17
Haskell超初心者勉強会14
Haskell超初心者勉強会11
Scalaでの例外処理

MacroPyがすごい