Próbuję zrozumieć curry czytając różne blogi i układając odpowiedzi na temat przepływu i myślę, że zrozumiałem co. W Haskell, każda funkcja jest curry, to znaczy, gdy masz funkcję jak f x y = x + y
to naprawdę ((f x) y)
w tym funkcja początkowo wziąć pierwszy parametr „x” jako parametr i częściowo dotyczy to funkcjonować f, który z kolei zwraca funkcję dla y. gdzie wystarczy jeden parametr i stosuje się funkcję. W obu przypadkach funkcja przyjmuje tylko jeden parametr, a także proces zmniejszania funkcji do przyjmowania pojedynczego parametru nazywany jest "curry". Popraw mnie, jeśli rozumiem źle tutaj.
Więc jeśli jest poprawna, czy możesz mi powiedzieć, czy funkcje "dwa" i "trzy" są funkcjami curry?
Czy poniższy kod naprawdę zagniewa się w haskell?
three x y z = x + y + z
two = three 1
same = two 1
W tym przypadku, mam dwie wyspecjalizowane funkcje, „dwa” i „samo”, które są redukowane wziąć tylko jeden parametr, więc jest to curry?
Możesz go przetestować samodzielnie, używając polecenia ': t' w GHCi (': t three' wyświetli typ 'trzy'). – Mephy
świetnie, nie wiedziałem o tym. dzięki. – Nair
@JoshuaHannah - może widzisz to tutaj. Z pewnością nie oznaczało to żadnego wykroczenia lub usunięcia twojej odpowiedzi - miałem tylko nadzieję, że dodasz trochę przydatnych informacji dla Naira - przepraszam – Carsten