referential-transparency

Czym jest przejrzystość referencyjna?

Co oznacza termin przejrzystość odniesienia? Słyszałem, że to opisane jako "oznacza, że można zastąpić równych z równymi", ale to wydaje się niewystarczające Wyjaśnienie.

Czy Haskell naprawdę jest językiem czysto funkcjonalnym, biorąc pod uwagę unsafePerformIO?

Haskell jest ogólnie określany jako przykład języka czysto funkcjonalnego. Jak można to uzasadnić, biorąc pod uwagę istnienie ... Edit: myślałem, że "czysto funkcjonalny" oznacza, że nie można wprowadzić nieczystego kodu do funkcjonalnej części programu.

Czy Haskell jest naprawdę czysty (jest każdy język, który zajmuje się wejściem i wyjściem poza systemem)?

Po dotknięciu Monad w odniesieniu do programowania funkcyjnego, czy funkcja ta rzeczywiście czyni język czystym, czy jest to ... ędziecie zadowoleni, wiedząc jednak, że podoba mi się idea niezmienności, która jest o wiele ważniejsza w stawkach czystości.

Czystość a przejrzystość referencyjna

Terminy wydają się być zdefiniowane inaczej, ale zawsze myślałem o jednym sugerującym drugie; nie mogę myśleć o żadnym przyp ... ym, jeśli w ogóle istnieją? Jeśli istnieje różnica, przykładowe wyrażenie, które wyraźnie to pokazuje, byłoby mile widziane.

Czy są jakieś czysto funkcjonalne Schematy lub Lispy?

Bawiłem się kilkoma funkcyjnymi językami programowania i naprawdę cieszyłem się składnią s-expr używaną przez Lispy (szczegól ... zę też zalety pracy w języku czysto funkcjonalnym. Dlatego: Czy są jakieś czysto funkcjonalne Schematy (lub ogólnie Lispy)?

Próbkowanie sekwencji liczb losowych w Haskell

Potrzebuję małych list gaussowskich liczb losowych do symulacji, więc próbowałem: import System.Random seed = 10101 gen = ... est to niemożliwe, ponieważ funkcja musi zawsze zwracać te same wartości przy tym samym wejściu. Jak mam uciec z tej pułapki?