タグ

2016年3月17日のブックマーク (4件)

  • 【Scala】flatMap は怖くない! | DevelopersIO

    ここで注意が必要なのは「型引数をとる全てのクラス(全ての総称型) ≠ 文脈付きの値」ということです。型引数をとり、文脈付きの値とはいえないクラスも存在します。 たとえば SeqFactory[A] は、 Seq のサブクラス A を生成するファクトリであり、 文脈付きの値ではありません。もっと身近な例を上げると、わたし達が普段よく目にしている(であろう) Provider[A] や Publisher[A] というインターフェイスも、それぞれ「Aを提供するもの」「Aを発行するもの」という意味であり、Aという値を修飾しているわけではないので文脈付きの値とは呼びません。 文脈付きの値を返す関数 親友検索を考える さて、文脈付きの値がどのようなものかわかってきたところで、実際に文脈付きの値を生成する関数を作ってみましょう。 …などと大げさに言ってみましたが、そんなもの、今までだってたくさん作って

    【Scala】flatMap は怖くない! | DevelopersIO
  • direnv で特定のディレクトリ下の環境変数を定義する | DevelopersIO

    direnv direnv は、特定のディレクトリに移動したときのみ環境変数を有効化するツールです。アプリごとに環境変数を変更したいときに便利なアイテムです。ちなみに、言語は Go で開発されているようです。 私は、Middleman で静的 Web サイトを S3 にデプロイするとき (ちなみに middleman-s3_sync という 便利 Gem) の AWS のアクセスキーとシークレットキーを設定するときに使いました。類似ツールに Dotenv がありますが、こちらは環境変数を有効化するために Dotenv.load を実行する必要があります。direnv はディレクトリに移動してきたタイミングで自動で有効化してくれて楽だったのでこっちを採用しました。どちらが良いかは開発環境に依るかなぁと思います。 direnv を使おう 早速使ってみましょう。Mac の場合は Homebrew

    direnv で特定のディレクトリ下の環境変数を定義する | DevelopersIO
    utwang
    utwang 2016/03/17
  • GeneratorとSequence - Qiita

    GeneratorType generatorとは新しい要素を返す処理のことで、以下のGeneratorTypeプロトコルに従う。 class LineGenerator: GeneratorType { typealias Element = String var lines: [String] init(text: String) { self.lines = text.componentsSeparatedByString("\n") } func next() -> Element? { return lines.isEmpty ? nil : lines.removeAtIndex(0) } } let text = "いろはにほへと ちりぬるを\nわかよたれそ つねならむ\nういのおくやま けふこえて\nあさきゆめみし よひもせず" let generator1 = LineG

    GeneratorとSequence - Qiita
    utwang
    utwang 2016/03/17
  • webpack で Chrome 拡張を作って得られた知見 - もなでぃっく

    文書校正ツール textlintChrome 拡張を作ったのですが、その開発の過程でハマった問題や対策などを記録として残しておきます。 なお、textlint 拡張のソースコードは GitHub で公開しています。 github.com 1. textlint Chrome 拡張の仕組み textlint とは azu さんが作成している文書校正ツールで、Node のパッケージマネージャである npm を通してインストールできるようになっています。中身は当然 Node の JavaScript 製であり、モジュールとして Node で読み込んで利用する事もできるため、textlint 拡張ではそれを利用しています。 Node のコードを Chrome 拡張として動かすにあたり、Chrome 拡張の JavaScript エンジンはブラウザとしての Chrome のものと同等なため、そ

    webpack で Chrome 拡張を作って得られた知見 - もなでぃっく
    utwang
    utwang 2016/03/17
    拡張作らなくても参考になる