私はエルムのタイプシグニチャーを理解しようとしています。この関数は何を正確に返しますか?引数を受け入れずに返す関数のようです...エルムのタイプシグニチャーの理解の戻りタイプ
route : Parser (Page -> a) a
私はエルムのタイプシグニチャーを理解しようとしています。この関数は何を正確に返しますか?引数を受け入れずに返す関数のようです...エルムのタイプシグニチャーの理解の戻りタイプ
route : Parser (Page -> a) a
私自身の学習課題として、私はこれに答えるつもりです。何かが間違っていると、他の人がチップに入るでしょう。
私はあなたが
type Person = Adult String | Child String Age
子供は2つのパラメータを取りタイプであるようなものに使用されていることを確認しています。パーサーは同じです。しかし、それはdefinitionはかなり手ごわいですだあなたはパーサが最終的に国のリストに国家から関数のラッパーであるかを確認、言っ
type Parser a b =
Parser (State a -> List (State b))
type alias State value =
{ visited : List String
, unvisited : List String
, params : Dict String String
, value : value
}
。最終的には、未訪問の文字列やパラメータのリストが渡されます。それは徐々にそれぞれを訪問し、結果は最終的な「価値」に結びつくでしょう。次に、パーサは、2種類のパラメータを取りながら、ご注意
からa
を、b
からparseHash
がそう
parseHash : Parser (a -> a) a -> Location -> Maybe a
を定義している、あなたの元
route : Parser (Page -> a) a
は
route : Parser (Page -> Page) Page
でなければならないとしています
をタイプチェックします。
したがって、元の質問に戻るには、route
は、Page
から別のものへ行く方法をカプセル化したパーサーです(非常に一般的なオブジェクトです)。parseHash経由で使用できます。 Page
これは、もちろん、あなたがルータから期待するものです。
これはあなたが始めることを望む
ありがとう。これは正しい方向に私を指摘した。 – Matt
これはどこから来たのか参照を追加できますか? – robertjlooby
[このサンプルアプリケーション](https://github.com/AdrianRibao/elm-spa-example/blob/master/main.elm)の22行目。ありがとう – Matt