Diskuze: Common Lisp - selection sort

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Lisp vypadá rozdílný proti C#, protože opravdu rozdílný je Jedná se o deklarativní jazyk a
musíš úplně změnit svůj přístup a myšlení, jinak se v něm budeš
jenom trápit.
Můžeš se podívat na Rosetta Code http://rosettacode.org/…lection_sort#…
Pokud máš alespoň základy, tak je ten kód samopopisný, pokud je nemáš,
nemá smysl cokoliv vysvětlovat. Začni s jednoduchými příklady a teprve
potom se snaž napsat sort.
Díky za materiál, základy nějaké mám z jazyka scheme, ale celkově tyto dva jazyky mi prostě nesedí, je to tak, že celý "život" programuju nejčastěji v c# a tohle i scheme je pro mě řekněme šok.
To je asi o názoru, do dnešního dne jsem tomu nepřišel na chuť.
Názor se obvykle mění časem a zkušenostmi. Většina začátečníků má problém s deklarativním a funkcionálním přístupem, čestnou výjimkou bývají matematici, kterým to žádné problémy nedělá. Proto je důležité si dobře rozmyslet algoritmus a pečlivě zadefinovat komponenty. Pokud dokážeš všechny termíny zapsat ve smyslu matematických funkcí, bude to už jenom čistý přepis z papíru.
Programovací jazyky lze obecně rozdělit na imperativní a deklarativní. Oba přístupy jsou diametrálně odlišné. V deklarativním způsobu zápisu říkáš, co se má udělat, místo abys říkal, jak to se má udělat.
Budeme řešit úlohu najít nejmenší prvek v seznamu celých hodnot imperativním přístupem v C#:
List<int> list = ...
int min = int.max;
for (int i = 0; i < list.count; i++)
if (list[i] < min)
min = list[i];
Stejná úloha řešená deklarativním přístupem v Prologu:
min([x], x).
min([h|t], x) :- min(t, y), (h<y, x=h, !; x=y)
A ještě jeden dotaz
nějaké dobré prostředí na programování v CL ? Ve škola nám byl
doporučen LispWorks, ve free verzi, ale je to takové "sparťanské"
Skoro všichni, co jsem znal a programovali v Lispu, používali Emacs. Je to programování, ne přehlídka features.
Zobrazeno 10 zpráv z 10.