Article View: pl.comp.lang.funkcyjne
Article #884Re: Przyjemny, elegancki, prosty jezyk funkcyjny
From: Marcin 'Qrczak' Kowalczyk
Date: Thu, 17 May 2007 22:26
Date: Thu, 17 May 2007 22:26
62 lines
3371 bytes
3371 bytes
Dnia 17-05-2007, czw o godzinie 23:19 +0200, Michał Przybyłek
napisał(a):
> > To zmniejsza czytelność, a nie zwiększa. Jeśli wszystkie konstrukcje
> > wyglądają podobnie, to trudniej je rozróżnić na pierwszy rzut oka
> > i trzeba bardziej wczytywać się w słowa.
>
> Nie. W Lispie wszystkie konstrukcje wyglądają podobnie, bo są podobne -
> a nawet identyczne.
Nie są identyczne. Definicja lokalnej zmiennej jest czym innym niż
arytmetyka na liczbach, arytmetyka na liczbach jest czym innym niż
indeksowanie macierzy, indeksowanie macierzy jest czym innym niż
przypisanie zmiennej, przypisanie zmiennej jest czym innym niż
stworzenie lokalnej funkcji. Te konstrukcje mają cechy wspólne,
ale zdecydowanie są różne.
Analogia: znaki drogowe mają różne kształty, żeby można było je łatwiej
rozróżnić na pierwszy rzut oka. A przecież teoretycznie wszystkie
mogłyby być prostokątne.
Analogia: niektóre małe litery alfabetu łacińskiego odstają w górę albo
w dół od głównego ciągu. Cóż za niekonsekwencja!
Analogia: dobrze zaprojektowane ikony na paskach narzędziowych mają
różnorodne kształty.
Przy tworzeniu dzieła, które człowiek będzie czytał, należy
wykorzystywać dostępną różnorodność form. Oczywiście bez przesady.
Nawet Lisp stosuje kilka skrótów: ' ` , ,@
bez których notacja byłaby bardziej spójna, ale mniej wygodna.
> Nie trzeba ich rozróżniać.
Ale warto.
> Zawsze (w uproszczeniu nieistotnym dla tej dyskusji) jest to aplikacja
> operatora do argumentów.
No to co?
W dodatku Common Lisp rozróżnia wyrażenia, które są do siebie bardziej
podobne niż np. wzięcie wielkości tablicy jest podobne do definicji
lokalnej zmiennej - a mianowicie aplikację globalnej funkcji i aplikację
funkcji przekazanej jako parametr:
(f x)
(funcall f x)
> BTW, zapomniałeś odnieść się do linka, którego podałem.
Tam nie było żadnych argumentów.
> ps. I o ile pamiętam, to mieliśmy umowę, że nie będziesz publicznie
> krytykował Lispu :-)
Nie przypominam sobie.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID:
<1179440766.31265.21.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-mailReferences:
<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>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: Fri, 18 May 2007 00:26:06 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 80 Message-ID: <1179440766.31265.21.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> NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1179440835 13479 217.96.225.87 (17 May 2007 22:27:15 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 17 May 2007 22:27:15 +0000 (UTC) In-Reply-To: <f2igt8$2j$1@atlantis.news.tpi.pl> X-Mailer: Evolution 2.10.0 PLD Linux Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit