タグ

2017年5月20日のブックマーク (2件)

  • Scalaでimplicits呼ぶなキャンペーン - kmizuの日記

    はじめのはじめに implicitsは可読性が…という人が居たら、この記事へのリンクを教えてあげていただければと思います TL;DR Scalaには俗に「implicits」と呼ばれる機能がある 実際にはそれらは3つの機能をまとめて指す用語である それぞれの機能は全く異なる 暗黙の型変換は現代では無視してよし 拡張メソッドは、既存の言語でそれを持つのと同じ程度の簡単さである 型クラスとしての用法は、型クラスがある言語を知らないとやや難しいが、積極的に使う価値がある機能である 「implicits」は異なる3つの機能を一つにまとめた呼び方に過ぎず混乱を招くので、使うのをやめよう(個々の機能名で呼ぼう)。また、暗黙の型変換は無視して良いし、拡張メソッドはよく知られているので、型クラスとしての用法にフォーカスして良い はじめに Scalaには俗にimplicitsと呼ばれる機能(群)があります。

    Scalaでimplicits呼ぶなキャンペーン - kmizuの日記
    mizdra
    mizdra 2017/05/20
  • プログラミング言語Scala 日本語情報サイト - CanBuildFromのインスタンスはどこから湧いてくるのか

    Scalaユーザの皆様は、普段からコレクションライブラリの高階関数を使われていることと思います。特に、mapやflatMapは必須の高階関数といっても良いでしょう。 さて、話は少し変わりますが、Scala 2.8以降のコレクションライブラリでは、map,flatMapなどに対して、implicitな引数 bf: CanBuildFrom がくっついています。たとえば、List[+A]#mapのシグニチャは def map[B, That] (f: (A) ⇒ B)(implicit bf: CanBuildFrom[List[A], B, That]): That となっています。ここで、通常のケースではimplicit paramater bfの存在を意識しなくても意図通りに動作するようにmapメソッド(正確には、意図通りにmap メソッドが動作するように、bfに対して適切なCanBui

    mizdra
    mizdra 2017/05/20