タグ

2020年6月8日のブックマーク (1件)

  • RustのHigher-Kinded type Trait | κeenのHappy Hacκing Blog

    κeenです。少し前の話になりますがRustの関連型を駆使してHigher Kinded type Trait(高階型トレイト)を実現してしまったものが出回ってたのでそれについて。 RustはHKTをサポートしていませんが不思議なことに実装出来てしまっているのです。 HKTについて微塵も知らない方にも分かるように解説していきます。 map 可能なトレイト Option、Result、etc 色々なトレイトが map メソッドを実装しています。 それぞれ型シグネチャを抜き出してみましょう。 Option: map<U, F: FnOnce(T) -> U>(self, f: F) -> Option<U> Result: map<U, F: FnOnce(T) -> U>(self, op: F) -> Result<U, E> 驚く程似てますね。これを抽象化して「mapメソッドを持つ」

    RustのHigher-Kinded type Trait | κeenのHappy Hacκing Blog