macro
概要や結論を先に書いておくと、適切にプロファイルを取って、適切にボトルネック箇所を見つけて対処しましょう。 という話になるのですが、大まかな概要というか、結果的に使った方法を書くと sbtのTask毎の時間を記録する機能を使う Scala 3 compilerのロ…
Compiler Plugin難しい xuwei-k.github.io
というのがおそらく作成できたけれど、もっと書き方改善可能なところあったら教えて下さい。 このくらいすでに、Scala 3でも前例が存在する気もするけど、とりあえず(あまり前例は調査はせずに)自作しました。 テスト書いてあるとおり、指定されたcloseメソ…
数日前の記事と、対になる(?)もの xuwei-k.hatenablog.com
というのを書いたので貼っておきます。 Listで返す版と、Tupleで返す版。 https://gist.github.com/xuwei-k/7c3f662a78fdd39ce00db43900470848 https://gist.github.com/xuwei-k/c798d8faa3f4f163be0aad150b327d07:
ウォ〜〜scalaでguice使う時に injector.getInstance(Key.get(new TypeLiteral[Foo[Bar]]{}))って書くの面倒くさいにゃんよ〜〜!! 単に injector.instanceOf[Foo[Bar]]って書けて欲しい〜〜!!— にゃおきゃっと (@nyaocat) July 29, 2019
wartremoverとは、一言でいうとScala向けのlinterです。 主な特徴としては、 コンパイラプラグインとしてもマクロとしても使えて、独自のルールをある程度簡単に追加できたり、アノテーションつけて一部のみを警告抑制できたり、警告にするかエラーにするか…
だいぶ今更感ある
なにやってるんだ・・・、と思いつつ見てたら、とりあえず解答を思いついてしまったので貼っておきます。Scalaに存在演算子を求めるのは間違っているだろうか
shapelessの話をします。
twitter便利ですね。作者からリプライきました
https://issues.scala-lang.org/browse/SI-8949 https://gist.github.com/xuwei-k/0348d85d3b80fcce1094
http://xuwei-k.github.io/slides/functional-something-shapeless/#0 https://github.com/xuwei-k/slides/blob/4dd0dfa/functional-something-shapeless/functional-something-shapeless/functional-something-shapeless.md
Scalaのマクロというより、一般的にマクロに共通する基本であり重要な部分です。それをScala使って説明するだけです。
https://github.com/xuwei-k/zeroapply
ロードマップ発表されていたので、簡単に要約しておきますhttp://scalamacros.org/news/2014/07/16/roadmap-for-scala-macros.html
できた気がするhttps://github.com/xuwei-k/twitterz/commit/b1d8201 https://github.com/xuwei-k/macro-annotation-sample/commit/47896fc1c0
以前書いたこれコンパイル時に、 String を lift json に変換する macro https://github.com/xuwei-k/json_macro
「マクロかつString Interpolation」って何言ってるかわからないですが、つまりそういうことです(どういうことだ)。String Interpolationの中で、マクロ呼べばできるんですね。*1 このblog post *1:構文木を自分で組み立てないといけなくなって、単なるマク…
なんかわかりづらいですが、つまり以下のコードを実行すると val foo, bar, baz = const println(foo) println(bar) println(baz) 順に foo, bar, baz が表示されます。正確にはコンパイラ内部のAPIにアクセスしてるので、単なるマクロというより、コンパイ…
以前(といっても10ヶ月くらいまえですが) Scala の macro に gensym (ユニークな名前生成) ないのかな。とりあえず現状なさそうだな2012-02-27 03:23:09 via webと言いましたが、freshという名前のメソッドで、存在するみたい(?)です。これ見て気が付きまし…
追記: lift-json から json4s に変えた scala-user の ML に流れてたhttps://groups.google.com/forum/?fromgroups#!topic/scala-user/IKR_4rfbPRs
追記: これ Scala2.10.0-M2のときに書いたので、最新では動きませんよ・・・ マクロ楽しいですね( ^ω^)あまり大きい式で試してないけどこれでいいはず。なんだかちょっと長いけれど、もっと短い書き方わかった人いたら教えて下さい(・ω・`)
つい数日前にでた、 Scala2.10.0-M2 から、( コンパイルオプションが必要ですが) macro が入っているので、使ってみました!もう、タイトルのままで、とにかくソース見てもらえば(ryhttps://github.com/xuwei-k/compile-time-fibonacci