Syntaxe Haskell funkce

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Syntaxe Haskell funkce
« Odpověď #15 kdy: 11. 07. 2018, 16:04:47 »
na více než jednom argumentu
Kód: [Vybrat]
f (x:xs) (y:ys) = ...
f _ _ = ...
vs.
Kód: [Vybrat]
f = \a b -> case (a, b) of ...
Rozumím. Takže když by to bylo takto?
Kód: [Vybrat]
f = (x:xs) (y:ys) -> ...


mm

Re:Syntaxe Haskell funkce
« Odpověď #16 kdy: 11. 07. 2018, 17:24:19 »
najdi si na wiki co je to Eta redukce
a neco o lambda funkcich

jinak https://wiki.haskell.org/Eta_conversion

takze tve:

Kód: [Vybrat]
f a = a + 1
je plne equivaletni k:

Kód: [Vybrat]
f = (+) 1

v

Re:Syntaxe Haskell funkce
« Odpověď #17 kdy: 11. 07. 2018, 17:46:13 »
na více než jednom argumentu
Kód: [Vybrat]
f (x:xs) (y:ys) = ...
f _ _ = ...
vs.
Kód: [Vybrat]
f = \a b -> case (a, b) of ...
Rozumím. Takže když by to bylo takto?
Kód: [Vybrat]
f = (x:xs) (y:ys) -> ...
tak bych řekl, že současný stav je mi milejší :D konzistentnost je fajn, ale ergonomie je pro mě víc - a konzistentnost na ni může mít jak pozitivní tak i negativní vliv

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Syntaxe Haskell funkce
« Odpověď #18 kdy: 11. 07. 2018, 19:55:30 »
tak bych řekl, že současný stav je mi milejší :D konzistentnost je fajn, ale ergonomie je pro mě víc - a konzistentnost na ni může mít jak pozitivní tak i negativní vliv

V čem vidíš tu ergonomii?

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Syntaxe Haskell funkce
« Odpověď #19 kdy: 11. 07. 2018, 19:56:30 »
najdi si na wiki co je to Eta redukce
a neco o lambda funkcich

jinak https://wiki.haskell.org/Eta_conversion

takze tve:

Kód: [Vybrat]
f a = a + 1
je plne equivaletni k:

Kód: [Vybrat]
f = (+) 1
Ah, znám, ale nedošlo mi. Jasný, díky.


v

Re:Syntaxe Haskell funkce
« Odpověď #20 kdy: 11. 07. 2018, 21:29:37 »
tak bych řekl, že současný stav je mi milejší :D konzistentnost je fajn, ale ergonomie je pro mě víc - a konzistentnost na ni může mít jak pozitivní tak i negativní vliv

V čem vidíš tu ergonomii?
viz tady
dále ta syntaxe co jste navrhoval by asi vyžadovala dvojité odsazení v případě pattern matchingu
Kód: [Vybrat]
f =
  \.. ->
    ...
  \... ->
    ...
a vůbec, myslím, že se v tom zbytečně moc vrtáte :)