2

Sized に safeGet メソッドを追加することに着手したのは、私が取り組んでいる一部のクライアント コードに最適だと感じたからです。

私の場合は機能しますが、一般的な場合では機能しないひどいハックで機能させることができました。

メソッドのシグネチャと定義は次のとおりです。

def safeGet(m : Nat)(implicit diff : Diff[L, Succ[m.N]], ev : ToInt[m.N]) = r(toInt[m.N])

ただし、Traversable は apply メソッドを定義していないため、これが機能するために実行する必要がある追加のハックがいくつかあります。完全な(小さな)差分は次のとおりです

より適切な方法で同じ結果を得る方法を知っている人はいますか?

これを正しく行うには、標準ライブラリに IsGenSeqLike が必要だと思います。次に、Traversable をそのままにして、Seq でのみ safeGet を定義することができます。

4

0 に答える 0