Czy tylko ja uważam że typ Text powinien implementować Applicative w Haskellu?

0

Wtedy w ogóle nie potrzebiwalibyśmy takich wymysłów jak One.
Przecież klasa typu One to tylko bardziej specyficzna wersja Applicative, a metoda one to bardziej specyficzna wersja pure

1

@cerrato: Taki chyba jest pomysł KamilAdam :-)

Btw. ja też nie rozumiem. Jak Text Applicative? Text nawet nie jest polimorficzny.

0

Chodzi mi o kod:

instance Applicative T.Text where
    pure :: Char -> T.Text
    pure = T.singleton

Chociaż teraz widzę że Applicative ma też inne metody. Czyli trzeba by wyciągnąć z Applicative klasę bazową Purable co oczywiście jest niemożliwe :(

2

I tak by się nie zgadzało. Applicative jest dla typów polimorficznych. (*->*). Czyli pure powinno być od dowolnego typu, a nie tylko Char.
Może napisz co właściwie chciałeś osiągnąć uprościć?

0

Czyli pure powinno być od dowolnego typu, a nie tylko Char.

OK, teraz rozumiem

Może napisz co właściwie chciałeś osiągnąć uprościć?

Pozbyć się One i zamiast tego używać pure

A ogólnie to zastanawiam się jakie klasy typów powinienna "dziedziczyć" hipotetyczna klasa typu Collection. Po czym wpada się na taki Text który wszystko rozwala :D
Pewnie skończy się na czytaniu kodu classy-prelude: A typeclass-based Prelude.

0

Może Text nie powinien być Collection? W zasadzie istnienie klasy Text wynika z faktu, że ktoś kiedyś stwierdził, że String to po prostu Lista znaków. Co może pójść nie tak.

0

No, ale Lista to nie jedyny Collection. Jest też Set i Sequence, a może nawet Map jakby dobrze to zaplanować. Taki spólny interfejs ułatwia pisanie funkcji narzędziowych. Teraz są sytuacje że coś działa dla String/List a nie działa dla Text, jakieś np wyszukiwanie czy dzielenie. Kończy się to na tym że kopiuje kod z bibliotek "standardowych" i przerabiam go żeby działał dla Text. Ale bardzo łatwo było by napisać tą funkcję żeby działała i dla Text i dla String i dla List i dla Sequence :) Trudno mi się powstrzymać :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1