サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
aoino.hatenablog.com
かなり遅刻してしまいましたが、Adventar 版 Scala アドベントカレンダーの2日目です。 前日: Typelevel.scala Projects Stickers が欲しい 翌日: so_zaneli さんの finagle-toggleでデプロイとリリースを分離する 今回は implicitly と Imp ってライブラリ話を書こうと思います。 implicitly is slow implicitly はご存知ですね。Scala 標準ライブラリの Predef に以下のように定義されています。※ 2.11.8 時点。 scala/Predef.scala at v2.11.8 · scala/scala · GitHub @inline def implicitly[T](implicit e: T) = e 要するに型パラメータを明示的に指定してスコープ内に定義されている
この記事はadventar版Scalaアドベントカレンダーの21日目です。 担当は@aoiroaoinoです。17日ズサーしてる場合じゃなかった。とっても遅刻しちゃってすみません。。 まえがき いつも通りMonocleの話です。事の発端はこのissueとPRでした。 https://github.com/julien-truffaut/Monocle/issues/288 https://github.com/julien-truffaut/Monocle/pull/289 全く知らなかったのだけど、追加されたexampleやらtestやら眺めてたら便利そうだったので。 Platedのインスタンス まず、Plated自体は型クラスで定義は以下のとおり。 abstract class Plated[A] extends Serializable { self => def plate: Tr
この記事はadventar版Scalaアドベントカレンダーの17日目です。 21日のみ書く予定でしたが、17日空いてるのも寂しいので ズサーc⌒っ゚Д゚)っ しました。 あ、Monocle v1.2.0 がリリースされましたよ。めでたいですね!! さて、本日はそんなMonocleでも使ってる(?)Scalaのマクロのお話です。個人的にはそもそもあんまりマクロ使わないですし、使ったとしても2.11系のみ対応だったりで、2.10系との互換性を意識したことがなかったんですが、Scalaの複数のメジャーバージョンを跨ぐライブラリともなると話は別なようです。 Monocle(執筆時 v1.2.0)ではLensやPrism、Isoなどを生成するようなマクロがあります。これまでは、2.10系と2.11系のマクロAPIの差はscala-2.10, scala-2.11ディレクトリ以下にそれぞれMacro
この記事はScala Advent Calendar 2014の22日目です。 日付変わっちゃいました、すみません。 今回はちょっとMonocle触ってみました。 Monocleとは Julien Truffaut氏がメインで開発してるScalaでLensなライブラリです。 最新安定版はv1.0.1(2014.12.22 現在)で、つい先日リリースされたばかりのピチピチです。 Just published Monocle 1.0.1, here is the release note: https://t.co/HqBy4ARuC1 and some benchmarks https://t.co/XkeC7VVI1M— Julien Truffaut (@JulienTruffaut) December 18, 2014 もともとはHaskellのLensパッケージがあって、それをSca
この記事はPlay or Scala Advent Calendar 2012の18日目です。 何か作ってみるとか言いながら解説記事になりました(謝 総力尽くして色々解読してますが、補足・間違い等ありましたらご指摘ください。 暗黙のパラメータ(Implicit Parameter)についても一緒にまとめようと思ったけど、長くなりそうだったので省きます...。 そもそも何なのこの機能 語弊も承知で言うならば「コンパイラが勝手にやってくれる型キャストみたいな機能」 です。こりゃ確実に刺されますね、はい。 もう少しちゃんと説明すると、Scalaのコンパイラは型の不一致によるエラーを検出した際に悲鳴をあげる前にスコープ内のimplicitキーワードで定義されたメソッドを用いて解決を図ります。もし、解決出来る場合はそのメソッドを自動的に挿入して実行に移ります。 既存のライブラリ直接弄ることなく拡張で
このページを最初にブックマークしてみませんか?
『aoino.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く