🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #891

Re: Przyjemny, elegancki, prosty jezyk funkcyjny

#891
From: Marcin 'Qrczak' Kowalczyk
Date: Sat, 19 May 2007 12:17
61 lines
4395 bytes
Dnia 19-05-2007, So o godzinie 11:59 +0200, Michał Przybyłek napisał(a):

> Jakiej spójności ? Przecież jest spójnie - zawsze masz ewaluację 
> pierwszego argumentu w środowisku funkcyjnym, pozostałych w środowisku 
> zwykłych wartości i aplikację pierwszego argumentu, który musi być 
> funkcją (operatorem) do pozostałych, które muszą być zwykłymi wartościami.

Niespójność polega na tym, że jedne funkcje są dostępne w środowisku
funkcyjnym, a inne - w środowisku zwykłych wartości.

To jest poboczny temat. Zaczęło się od mnogości nawiasów, która irytuje
mnie bardziej niż #' i funcall/apply.

> > Nieprawda. Funkcję mogę przekazać jako argument innej operacji albo
> > zaaplikować do argumentów. Parametr funkcji mogę przekazać dalej jako
> > argument innej operacji albo zaaplikować do argumentów.
> 
> Prawda. Funkcji używa się inaczej niż pozostałych obiektów - tylko 
> funkcje są aplikowane. Oczywiście _istnieją_ też konteksty, w których 
> używa się funkcji tak jak zwykłych wartości.

Wystarczy, że istnieją takie konteksty, żeby była konieczność jawnego
importowania z jednej przestrzeni nazw do innej. Jawne importowanie jest
dla mnie wadą, bo każe programiście rozróżniać sytuacje, które mogą być
z powodzeniem traktowane jako to samo.

> Nie traktuj dodatkowej ilości kodu jako zło, z którym trzeba walczyć,
> a jako przydatne komentarze.

Dla mnie nieprzydatne. To, że dane słowo oznacza funkcję, nie jest tak
ważną informacją, żeby zmuszać programistę do jawnego zaznaczania tego
w każdym miejscu, w którym jest użyte.

W Perlu jest osobna przestrzeń nazw dla skalarów, osobna dla tablic,
osobna dla słowników, osobna dla funkcji i osobna dla uchwytów
wejścia-wyjścia. Też trzeba owinąć wszystko w skalar za pomocą jawnej
operacji, żeby przekazać obiekt pośrednio, a potem odwinąć w miejscu
użycia. To mi się nie podoba tak samo jak w Lispie. Tego też będziesz
bronił? Jeśli nie, to dlaczego chcesz wyróżniać funkcje, a nie chcesz
wyróżniać tablic? Przecież tablice też są szczególnymi wartościami:
tylko tablice są indeksowane.

> >> BTW, czy np. etykiety dla "goto", też powinny siedzieć w tej samej 
> >> przestrzeni co pozostałe rzeczy ?
> > 
> > Jeśli nie są first class values, to są używane w różnych kontekstach,
> > więc mogą być w różnych przestrzeniach nazw.
> 
> Co rozumiesz przez bycie "first-class" ? Czy kontynuacja łapana przez 
> "return" nie jest first-class, choć mogę owinąć ją w lambdę i przekazać 
> dalej ?

Mogę się zgodzić, że jest first class, więc mogłyby też być w tej samej
przestrzeni nazw. Przekazywanie etykiet pośrednio jest zapewne tak
rzadkie, że to, czy są w tej samej przestrzeni nazw, nie ma dużego
znaczenia praktycznego i nie będę tutaj naciskał w żadną stronę.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID: <1179577062.20571.28.camel@qrnik>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <1179163778.661628.303210@h2g2000hsg.googlegroups.com> <f2ak3b$rpj$1@nemesis.news.tpi.pl> <1179268422.157417.102270@o5g2000hsb.googlegroups.com> <f2ej9b$f4k$1@nemesis.news.tpi.pl> <1179352200.4321.8.camel@qrnik> <f2igt8$2j$1@atlantis.news.tpi.pl> <1179440766.31265.21.camel@qrnik> <f2imn9$iig$1@atlantis.news.tpi.pl> <1179528669.15951.26.camel@qrnik> <f2ldb0$nun$1@atlantis.news.tpi.pl> <1179534794.18262.35.camel@qrnik> <f2mhpe$fpb$1@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl>
Newsgroups: pl.comp.lang.funkcyjne
Subject: Re: Przyjemny, elegancki, prosty jezyk funkcyjny
Date: Sat, 19 May 2007 14:17:42 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 92
Message-ID: <1179577062.20571.28.camel@qrnik>
References: <1179163778.661628.303210@h2g2000hsg.googlegroups.com>  <f2ak3b$rpj$1@nemesis.news.tpi.pl>  <1179268422.157417.102270@o5g2000hsb.googlegroups.com>  <f2ej9b$f4k$1@nemesis.news.tpi.pl> <1179352200.4321.8.camel@qrnik>  <f2igt8$2j$1@atlantis.news.tpi.pl> <1179440766.31265.21.camel@qrnik>  <f2imn9$iig$1@atlantis.news.tpi.pl> <1179528669.15951.26.camel@qrnik>  <f2ldb0$nun$1@atlantis.news.tpi.pl> <1179534794.18262.35.camel@qrnik>  <f2mhpe$fpb$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1179577110 16187 217.96.225.87 (19 May 2007 12:18:30 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 19 May 2007 12:18:30 +0000 (UTC)
In-Reply-To: <f2mhpe$fpb$1@atlantis.news.tpi.pl>
X-Mailer: Evolution 2.10.0 PLD Linux
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit