さて、私が本当にやりたかったのは、配列があり、そこからランダムな要素を選択したいということです。明らかなことは、乱数ジェネレーターから 0 と長さマイナス 1 の間の整数を取得することです。これは既に作業しており、次にArray.getMaybe a
を適用しますが、(同じことを行うパッケージ関数もあるようです。) Haskell から来て、インデックスが範囲外だった場合から私を保護しているという型の重要性を取得しますが、インデックスを制御できますが、制御しません。それが起こることを期待しているので、何かを手に入れたと仮定しJust
て、やや強制的に に変換しa
たいと思います。Haskell では、これは、fromJust
または、冗長に感じた場合はfromMaybe (error "some message")
.Elmでこれを行うにはどうすればよいですか?
これについて議論しているように見える議論をメーリングリストで見つけましたが、しばらく経ちましたが、議論が示唆する標準ライブラリに必要な関数がありません。
これまでに見つけた、かなり満足のいかない潜在的な解決策をいくつか示します。
- withDefaultを使用するだけです。私は
a
利用可能なデフォルト値を持っていますが、これは私のコードに完全に間違った意味を与え、おそらく将来のデバッグを難しくするので好きではありません. - ポートをいじって Javascript とやり取りし、Nothing の場合はそこで例外をスローします。これがどのように機能するかはまだ注意深く調査していませんが、明らかに可能です。しかし、これは単純な純粋な Elm とは異なり、あまりにも多くの依存関係を混同しているようです。