Enviar pesquisa
Carregar
Scalamacrosについて
•
Transferir como PPTX, PDF
•
1 gostou
•
462 visualizações
D
dekosuke
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 16
Baixar agora
Recomendados
大人のお型付け
大人のお型付け
Nobuhisa Koizumi
おいしいLisp
おいしいLisp
Kent Ohashi
Functional Way
Functional Way
Kent Ohashi
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
Computational Materials Science Initiative
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
Python で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Recomendados
大人のお型付け
大人のお型付け
Nobuhisa Koizumi
おいしいLisp
おいしいLisp
Kent Ohashi
Functional Way
Functional Way
Kent Ohashi
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
Computational Materials Science Initiative
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
Python で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
C++14 Overview
C++14 Overview
Akira Takahashi
並行プログラミングと継続モナド
並行プログラミングと継続モナド
Kousuke Ruichi
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
Kota Mizushima
Testman
Testman
makoto tsuyuki
Effective modern-c++#9
Effective modern-c++#9
Tatsuki SHIMIZU
emc++ chapter32
emc++ chapter32
Tatsuki SHIMIZU
SEH on mingw32
SEH on mingw32
kikairoya
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
digitalghost
More C++11
More C++11
京大 マイコンクラブ
Map
Map
kikairoya
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
blackenedgold
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
CLR/H No.35-2
CLR/H No.35-2
Nobuhisa Koizumi
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
Keisuke Fukuda
研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
Radhika_Jain_CV
Radhika_Jain_CV
Radhika Jain
Programming Haskell Chapter 11 切符番号選び
Programming Haskell Chapter 11 切符番号選び
dekosuke
Mais conteúdo relacionado
Mais procurados
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
C++14 Overview
C++14 Overview
Akira Takahashi
並行プログラミングと継続モナド
並行プログラミングと継続モナド
Kousuke Ruichi
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
Kota Mizushima
Testman
Testman
makoto tsuyuki
Effective modern-c++#9
Effective modern-c++#9
Tatsuki SHIMIZU
emc++ chapter32
emc++ chapter32
Tatsuki SHIMIZU
SEH on mingw32
SEH on mingw32
kikairoya
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
digitalghost
More C++11
More C++11
京大 マイコンクラブ
Map
Map
kikairoya
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
blackenedgold
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
CLR/H No.35-2
CLR/H No.35-2
Nobuhisa Koizumi
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
Keisuke Fukuda
研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
Mais procurados
(20)
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
C++14 Overview
C++14 Overview
並行プログラミングと継続モナド
並行プログラミングと継続モナド
Visual C++で使えるC++11
Visual C++で使えるC++11
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
Testman
Testman
Effective modern-c++#9
Effective modern-c++#9
emc++ chapter32
emc++ chapter32
SEH on mingw32
SEH on mingw32
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
More C++11
More C++11
Map
Map
C++でHello worldを書いてみた
C++でHello worldを書いてみた
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
CLR/H No.35-2
CLR/H No.35-2
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
研究生のためのC++ no.2
研究生のためのC++ no.2
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
Emcjp item21
Emcjp item21
Destaque
Radhika_Jain_CV
Radhika_Jain_CV
Radhika Jain
Programming Haskell Chapter 11 切符番号選び
Programming Haskell Chapter 11 切符番号選び
dekosuke
Docker module 1
Docker module 1
Liang Bo
プログラミングHaskell 第五章
プログラミングHaskell 第五章
dekosuke
Final special education
Final special education
Dr smriti mona
Data.mapについて
Data.mapについて
dekosuke
Inclusive education
Inclusive education
Dr smriti mona
Destaque
(7)
Radhika_Jain_CV
Radhika_Jain_CV
Programming Haskell Chapter 11 切符番号選び
Programming Haskell Chapter 11 切符番号選び
Docker module 1
Docker module 1
プログラミングHaskell 第五章
プログラミングHaskell 第五章
Final special education
Final special education
Data.mapについて
Data.mapについて
Inclusive education
Inclusive education
Semelhante a Scalamacrosについて
Phantom Type in Scala
Phantom Type in Scala
Yasuyuki Maeda
Everyday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
Yoshiiro Ueno
言語アップデート -Scala編-
言語アップデート -Scala編-
Kota Mizushima
ATN No.2 Scala事始め
ATN No.2 Scala事始め
AdvancedTechNight
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
Trait in scala
Trait in scala
Yuta Shimakawa
Rpscala2011 0601
Rpscala2011 0601
Hajime Yanagawa
Scalaで型クラス入門
Scalaで型クラス入門
Makoto Fukuhara
R新機能抄出
R新機能抄出
Masafumi Okada
MoteMote Compiler Plugin
MoteMote Compiler Plugin
yoshiaki iwanaga
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
Scala2.8への移行
Scala2.8への移行
guest5f4320
Scala2.8への移行
Scala2.8への移行
Takeda Hiroyuki
Hokuriku Scala 1
Hokuriku Scala 1
NISHIMOTO Keisuke
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
tnoda
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
papamitra
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
Semelhante a Scalamacrosについて
(20)
Phantom Type in Scala
Phantom Type in Scala
Everyday Life with clojure.spec
Everyday Life with clojure.spec
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
言語アップデート -Scala編-
言語アップデート -Scala編-
ATN No.2 Scala事始め
ATN No.2 Scala事始め
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
Scala on Hadoop
Scala on Hadoop
Trait in scala
Trait in scala
Rpscala2011 0601
Rpscala2011 0601
Scalaで型クラス入門
Scalaで型クラス入門
R新機能抄出
R新機能抄出
MoteMote Compiler Plugin
MoteMote Compiler Plugin
Apache Spark チュートリアル
Apache Spark チュートリアル
Scala2.8への移行
Scala2.8への移行
Scala2.8への移行
Scala2.8への移行
Hokuriku Scala 1
Hokuriku Scala 1
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Mais de dekosuke
Ga nonogram
Ga nonogram
dekosuke
Machine learning @ PyFes 2011.10
Machine learning @ PyFes 2011.10
dekosuke
スマートフォンについて その1
スマートフォンについて その1
dekosuke
Javascript本19章まとめ
Javascript本19章まとめ
dekosuke
Android UIの罠
Android UIの罠
dekosuke
スタートHaskell 第二章
スタートHaskell 第二章
dekosuke
Mais de dekosuke
(6)
Ga nonogram
Ga nonogram
Machine learning @ PyFes 2011.10
Machine learning @ PyFes 2011.10
スマートフォンについて その1
スマートフォンについて その1
Javascript本19章まとめ
Javascript本19章まとめ
Android UIの罠
Android UIの罠
スタートHaskell 第二章
スタートHaskell 第二章
Último
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Último
(9)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Scalamacrosについて
1.
Scalamacrosについて
@dekosuke
2.
自己紹介 twitter@dekosuke Webエンジニア@D社
機械学習とHaskell 2
3.
はじめに マクロの話をします Scalamacros(ライブラリ、というより提案)の
紹介をします 3
4.
はじめに Scalamacrosは 提案なので 現在ではなく 未来の話です
4
5.
コンパイル時メタプログラミング スカラのコンパイラが実行される前に何かやり
たいですよね 要するにマクロ(プリプロセッサ) Scalaにはコンパイラプラグインがあって、 scalacの各段階で処理が挟めます(scala- virtualizedとかは使ってるらしいです) Scalamacrosの話をしましょう! 5
6.
Scalamacros Scalamacros (Project Kepler)
by Eugene Burmako http://scalamacros.org/ Scalaにマクロを持ち込みたい! 6
7.
マクロの悪名
C言語のマクロは悪名高い 7
8.
マクロの悪名
C言語のマクロは悪名高い そもそもC++のテンプレートが提案された理由 はC言語マクロほど凶悪でないプリプロセッサ がほしからでした 8
9.
Project Keplerのマクロ C言語と違って Scalaそのもので書かれている(言語外の何かで
はない) 式木の上での変換(生の文字列を操作したりし ない) Scalaの文法を変えない 9
10.
Project Keplerのマクロ (マクロの利点として) コード自動生成と違ってコード量が増えない
10
11.
例: 型安全なprintf (関数マクロ) //こんなマクロを書くと macro
def printf(format: String, params: Any*) { val (evals, refs) = parse(format, params) val seq = evals + refs.map(x => c"print($x)") c"$seq" } //型安全なprintfが printf("Value = %d", 123 + 877) //こう展開されるよ val p1 = (123 + 877): Int print("Value = "); print(p1) 11
12.
例:DB (型マクロ) macro trait
MySqlDb(connString: String) = … type MyDb = Base with MySqlDb("Server=127.0.0.1;Database=Foo;") Scalaの文法の自然な拡張(意味のないおまじな いを増やさない) 12
13.
Boilerplate
言語のおまじない 「すべてのBoilerplateを消し去りたい!」 trait TupledFunctions extends Functions with TupleOps { implicit def fun[A1:Manifest,A2:Manifest,B:Manifest](f: (Rep[A1], Rep[A2]) => Rep[B]) : Rep[((A1,A2))=>B] = fun((t: Rep[(A1,A2)]) => f(tuple2_get1(t), tuple2_get2(t))) implicit def fun[A1:Manifest,A2:Manifest,A3:Manifest,B:Manifest](f: (Rep[A1], Rep[A2], Rep[A3]) => Rep[B]) : Rep[((A1,A2,A3))=>B] = fun((t: Rep[(A1,A2,A3)]) => f(tuple3_get1(t), tuple3_get2(t), tuple3_get3(t))) ... } 13
14.
現状 “being specified
and refined within a Scala improvement process (aka SIP #14).” 14
15.
End
16.
作者HP
作者HP見ると時系列的な進行が分かるよ! http://xeno-by.blogspot.com/ 16
Baixar agora