W APL i Haskell, nie monada termin oznaczać dwie zupełnie różne rzeczy, albo samo widzianą z dwóch różnych perspektyw.Haskell'a Monada vs. APL na Monad
jestem raczej nowy w obu językach i stara się nadać sens pojęć wyższego poziomu.
W APL i Haskell, nie monada termin oznaczać dwie zupełnie różne rzeczy, albo samo widzianą z dwóch różnych perspektyw.Haskell'a Monada vs. APL na Monad
jestem raczej nowy w obu językach i stara się nadać sens pojęć wyższego poziomu.
Zupełnie inaczej, w Haskell monada jest coś wyposażony w dwie funkcje
bind :: m a -> (a -> m b) -> m b
return :: a -> m a
i kilka zasad o tym, jak grać razem. W rzeczywistości jest to konstrukcja z teorii kategorii.
W APL monada jest po prostu termin opisujący jak wiele argumentów funkcji (czasownik) wykonuje. Wydaje się, że w "monadzie" można używać jako synonimu "funkcji unarnej" i jest to termin powszechnie spotykany w logice i językoznawstwie.
Z tego, co wiem, są różne rzeczy. Jeśli monada APL jest po prostu czasownikiem mającym jeden argument (jak mi się wydaje, to nie znam APL), to bardzo różni się od monady Haskella, która wywodzi się z teorii kategorii i nie ma nic wspólnego z arnością Funkcje.
Dwie zupełnie różne rzeczy! Monada często idzie w szeregu z "Dyad" i "Triada" po prostu oznacza "jeden", "z dwóch", "z trzech". W przypadku APL oznacza "jeden argument".
Monady w Haskell są zupełnie inne. Prawdopodobnie biorą swoją etymologię z "monoid" i "opera", z których oba są zupełnie inne.
programiści APL i dokumentację APL rzadko używają terminu „Monada”. Zamiast tego będą odnosić się do "funkcji monadycznej" (funkcja, która akceptuje tylko jeden argument) lub "funkcji zwanej monadyczną" (takiej, która pomija opcjonalny argument). Żadne z nich nie jest podobne do użycia terminu "Monad" przez Haskella.
Etymologia monady: http://english.stackexchange.com/questions/30654/where-does-the-term-monad-come-from – luqui