タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Kotlinに関するjsoizoのブックマーク (3)

  • Kotlinで部分適用するためのExtension - /var/log/jsoizo

    部分適用するために以下のようなExtensionを用意しておくと便利。 fun <A, B, C, T> Function3<A, B, C, T>.partial(a: A): (B, C) -> T = {b, c -> invoke(a, b, c)} 例えば以下のような引数を3つ取る関数の場合だとこのようになる。 fun example(foo: Int, bar: String, baz: Long): String = TODO() val exampleBarBaz = ::example.partial(1) val result = exampleBarBaz("BarBar", 100L) 関数exampleを ::example としてオブジェクトを参照しているのがポイント。 なお、Function2~4あたりまで何パターンか用意しておくとよいかもしれない。 Func

    Kotlinで部分適用するためのExtension - /var/log/jsoizo
    jsoizo
    jsoizo 2023/05/19
    セルクマ
  • (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo

    この記事は以下のブログの翻訳記事で、著者の許諾のもと翻訳しています。翻訳過程で機械翻訳を活用しており、原典と翻訳を十分に照らし合わせて内容が正しいことを確認しておりますが、細かいニュアンスなどが気になる場合は原典をご確認ください。また、誤訳などあればtwitterにてご連絡いただけたら修正いたします。 medium.com 目次 目次 イントロ 例外(Exceptions) 型付きエラー処理(Typed Error Handling) 比較研究 実験結果 6位: 早期returnなしのsealed classマッチング 5位: Either<L, R> のflatMapチェーン 4位: 例外と再スロー(rethrow) 3位: 早期returnありのsealed classマッチング 2位: Arrowの either { } ビルダー 1位: Arrowの context(Raise<E

    (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo
    jsoizo
    jsoizo 2023/05/09
    セルクマ。非常に良い話だったので許諾の上で翻訳しました。
  • Arrow Coreのデータ型探訪 - /var/log/jsoizo

    これは Kotlin Advent Calendar 2022 の19日目が空いていたので書いたものです。 Kotlin中心の仕事になるので少しずつお勉強中なのだが、Scalaでコードを書いているときに使っている便利なデータ型が意外とKotlinにはないなとかNull-Safetyの方針がScalaとは違うのだなと感じることがある。 これは、その感想をうけて関数型プログラミングライブラリであるArrowを使えばややScalaぽいコードが書けそうなので試してみるものである。ArrowにはCore, Fx, Optics等ライブラリがいくつかあるがそのうちArrow Coreの一部データ型について触っていく。 追記: 2022.12.21 Tuple4~22について追加した Either<A, B> Left<A> または Right<B> のいずれかとなる。 詳細は以下の記事が詳しい。 ha

    Arrow Coreのデータ型探訪 - /var/log/jsoizo
    jsoizo
    jsoizo 2022/12/20
    セルクマ
  • 1