Widziałem ten kod kompilowany bez błędów i nie mogę powiedzieć, czy jest to błąd, czy też jest oczekiwany.Określanie typu parametrycznego nie jest wymuszane przez kompilator - czy jest to błąd, czy jest oczekiwany?
type alias Foo = List
vs
type alias Foo = List String
i to nie tylko z List
. Niestandardowe typy związków są również dozwolone. Ex:
type State value = Valid value | Invalid value
type alias Model1 =
{ someField : State String } -- i would say this is normal. State is a string..
type alias Model2 =
{ someField : State } -- this doesn't look right.
a także funkcje mogą
function1 : List String -> Int
function1 aListOfStrings =
1
function2 : List -> Int
function2 whatisThisNow =
1
Ale jeśli oczekuje się - jak rozumowania na ten temat? Nie mogę otoczyć się tym. Zagraj z nim here.
Pierwszy przykład wygląda mi dobrze: pozwoliłoby to na wykonywanie aplikacji typu częściowego. Ale dwa pozostałe wyglądają rzeczywiście jak coś, co powinno być ograniczone (ponieważ nie ma wartości, której typem jest funkcja typu). –
To wydaje się być mylące. Prawdopodobnie uzyskasz więcej informacji zwrotnej, jeśli zapytasz o Slack: http://elmlang.herokuapp.com/ – hkgumbs