🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.funkcyjne
16 messages
16 total messages Started by coccyx Fri, 21 Nov 2003 18:19
Ktory?
#525
Author: coccyx
Date: Fri, 21 Nov 2003 18:19
15 lines
1446 bytes
  Nie cierpię C++ (tego współczesnego, "postmodernistycznego",
rozumiany jako C z klasami był jeszcze znośny).  Java i C# też nie 
najlepszymi językami.  Pomyślałem więc o funkcyjnych.  Mam krótki 
wstęp do OCamla.  Przeczytałem pierwsze dwieście stron Sussmanów.  
Ale po archiwum widać, że na grupie bardziej ceniony jest Haskell.
Dlaczego?  I jakie są znaczące różnice między nimi?  (Np. C a Pascal
każdy potrafi rozpoznać, ale takich wielkich rozbieżności między nimi
nie ma).  Czego mam się uczyć, jeśli chcę poznać tylko jeden język, 
ale za to lepiej?  

jaq

-- 
...muutoksat mahdollisia.
Re: Ktory?
#526
Author: DecatonE
Date: Fri, 21 Nov 2003 18:27
12 lines
1335 bytes
coccyx...

> Ale po archiwum widać, że na grupie bardziej ceniony jest Haskell.

Haskell jest ładniejszy, bardziej ortodoksyjny... :)
Od OCamla bardziej też podoba mi się zwykły SML. 
Są stosunkowo podobne zresztą - przynajmniej w podstawach.

adam
-- 
:: rectifier[X]mesa.eu.org :: e-mail (change [X] into @) ::
::         www.mesa.eu.org :: my b&w photographs         ::
Re: Ktory?
#540
Author: Piotr Dembiński
Date: Sat, 22 Nov 2003 13:29
8 lines
1125 bytes
coccyx <mrok@salarrannsoknarfelagid.is> writes:

[...]

> Ale po archiwum widać, że na grupie bardziej ceniony jest Haskell.
> Dlaczego?

Bo w Haskellu są *monady* :>
Re: Ktory?
#527
Author: Andrzej Wasowski
Date: Sat, 22 Nov 2003 23:49
25 lines
2150 bytes
> 
> > Ale po archiwum widać, że na grupie bardziej ceniony jest Haskell.
> 
> Haskell jest ładniejszy, bardziej ortodoksyjny... :)
> Od OCamla bardziej też podoba mi się zwykły SML. 

Haskell jest po prostu naprawde funkcjonalny, tzn. nieimperatywny. Nie
ma zmiennych, petli itd. OCAML i SML sa tak naprawde imperatywne ale
programowanie funkcjonalne jest w nich o wiele bardziej naturalne niz
np. w Javie (gdzie zasadniczo nie jest mozliwe). To czy jezyk
funkcjonalny musi byc naprawde czysty tak jak Haskell wypelnia ogromnie
dlugie i zapewne niepotrzebne dyskusje. Niewatpliwe jednak jest, ze
Haskell jest z tego powodu trudniejszy do nauczenia. Mym skromnym
zdaniem OCAML jest akurat o tyle gorszy (od SMLa), ze wymusza o wiele
bardziej imperatywny sposob programowania. Sama biblioteka jest juz
bardziej imperatywna. Na pewno zaleta OCAMLa jest szybki kompilator i
bogactwo bibliotek.

Dla mnie do nauki optymalny jest SML. Jezyk maly, dobrze zdefiniowany i
nie trzeba od razu poznawac wielkich teorii, zeby zapisac wiersz do
pliku. Znajomosc SMLa pomaga potem docenic i zrozumiec Haskella. OCAML
jest preferowany tylko jesli naprawde potrzebujesz szybkosci.
To wszystko z discaimerem, ze to moje skromne zdanie.

andrzej
Re: Ktory?
#528
Author: Tomasz Zielonka
Date: Sun, 23 Nov 2003 07:52
61 lines
3053 bytes
Andrzej Wasowski napisał:
>> 
>> > Ale po archiwum widać, że na grupie bardziej ceniony jest Haskell.
>> 
>> Haskell jest ładniejszy, bardziej ortodoksyjny... :)
>> Od OCamla bardziej też podoba mi się zwykły SML. 
> 
> Haskell jest po prostu naprawde funkcjonalny, tzn. nieimperatywny. Nie
> ma zmiennych, petli itd.

Prawda jest, ze Haskell nie ma golych zmiennych i petli jak w C czy
pascalu. Udostepnia jednak pewne mechanizmy imperatywne w sposob nie
naruszajacy funkcyjnosci (czy tez referential transparency). Juz w
Haskellu 98 mozesz pisac petle w stylu:

    for [1..1000] print

    (gdzie for l f = mapM_ f l)

Fajne jest to, ze takie konstrukcje petlace mozna sobie napisac samemu.

Rozszerzenia takie jak referencje (IORef) czy imperatywne tablice sa
dostepne praktycznie we wszystkich kompilatorach.

> OCAML i SML sa tak naprawde imperatywne ale
> programowanie funkcjonalne jest w nich o wiele bardziej naturalne niz
> np. w Javie (gdzie zasadniczo nie jest mozliwe). To czy jezyk
> funkcjonalny musi byc naprawde czysty tak jak Haskell wypelnia ogromnie
> dlugie i zapewne niepotrzebne dyskusje.

Mozemy to uznac za kwestie osobistych preferencji.

> Niewatpliwe jednak jest, ze Haskell jest z tego powodu trudniejszy do
> nauczenia.

Ale moim zdaniem warty tego wysilku :)

> Mym skromnym zdaniem OCAML jest akurat o tyle gorszy (od SMLa), ze
> wymusza o wiele bardziej imperatywny sposob programowania.  Sama
> biblioteka jest juz bardziej imperatywna.

Zgadzam sie. Miedzy innymi dlatego po jakims czasie przestal mi sie
podobac.

> Na pewno zaleta OCAMLa jest szybki kompilator i bogactwo bibliotek.

> Dla mnie do nauki optymalny jest SML. Jezyk maly, dobrze zdefiniowany i
> nie trzeba od razu poznawac wielkich teorii, zeby zapisac wiersz do
> pliku. Znajomosc SMLa pomaga potem docenic i zrozumiec Haskella. OCAML
> jest preferowany tylko jesli naprawde potrzebujesz szybkosci.

Z szybkoscia to bywa roznie. Ostatnio udaje mi sie pisac naprawde
szybkie programy w Haskellu.

> andrzej

Pozdrawiam,
Tomek

-- 
.signature: Too many levels of symbolic links
Re: Ktory?
#529
Author: coccyx
Date: Mon, 24 Nov 2003 15:29
30 lines
2154 bytes
23 Nov 2003 00:49:38 +0100 w zerojedynkę zamieniając się Andrzej Wasowski <wasowski@see.my.sig>:

> To czy jezyk funkcjonalny musi byc naprawde czysty tak jak Haskell
> wypelnia ogromnie dlugie i zapewne niepotrzebne dyskusje.

  No właśnie.  Przecież niektóre rzeczy naprawdę łatwiej zrobić imperatywnie.
Np.  http://www.merjis.com/richj/computers/ocaml/tutorial/ch6.shtml
Poza tym, C++ jest może nienajszczęśliwszym przykładem "polepszania" 
funkcjonalności języka, jednak każdy musi przyznać, że obiektowość 
często pomaga w programowaniu.  Tak więc chyba lepiej móc coś zrobić
na kilka sposobów?

>  Mym skromnym zdaniem OCAML jest akurat o tyle gorszy (od SMLa), ze wymusza 
>  o wiele bardziej imperatywny sposob programowania. Sama biblioteka jest juz
>  bardziej imperatywna. 

  To nie musi być wadą.  Dzięki temu łatwiej się przesiąść z "normanych" 
języków.  Co masz na myśli, mówiąc "wymusza"?

>  Na pewno zaleta OCAMLa jest szybki kompilator i bogactwo bibliotek.

  Szybki kompilator, tzn. szybko kompiluje, czy dobrze kompiluje?

  BTW:  Czy istnieje port QT pod któryś z funkcyjnych, a jeśli nie, to czy 
łatwo napisać wrapper?

jaq

-- 
...muutoksat mahdollisia.
Re: Ktory?
#530
Author: Andrzej Wasowski
Date: Mon, 24 Nov 2003 15:31
46 lines
2697 bytes
> > To czy jezyk funkcjonalny musi byc naprawde czysty tak jak Haskell
> > wypelnia ogromnie dlugie i zapewne niepotrzebne dyskusje.
> 
>   No właśnie.  Przecież niektóre rzeczy naprawdę łatwiej zrobić
>   imperatywnie.[CIACH]

zauwaz ze piszac "niepotrzebne dyskusje" mialem na celu unikniecie
podobnej argumentacji. Postawilem sie po prostu poza tym
sporem. Niestosowne jest wiec napisanie "no wlasnie" i potem
argumentowanie za impertywnymi konstrukcjami, niby ze idac po moim toku
rozumowania.


> >  Mym skromnym zdaniem OCAML jest akurat o tyle gorszy (od SMLa), ze
> >  wymusza o wiele bardziej imperatywny sposob programowania. Sama
> >  biblioteka jest juz bardziej imperatywna.
> 
> To nie musi być wadą.  Dzięki temu łatwiej się przesiąść z "normanych"
> języków.

To jest wada w przypadku jezyka funkcjonalnego. Jak masz sie nauczyc
programowac funkcjonalnie, kiedy nawet takie stirngi sa imperatywne. W
zasadzie czegokolwiek sie niedotkniesz.

> Co masz na myśli, mówiąc "wymusza"?

Tzn. ze biblioteka ma duzo imperatywnych funkcji a nie ma ich
nieimperatywnych odpowiednikow. Zatem jak tylko zaczynasz korzystac z
biblioteki Twoj program staje sie imperatywny. W SMLu standardem pisania
jest ze Twoj program w zasadzie jest funkcjonalny, a cech imperatywnych
uzywa sie ekstremalnie rzadko (i do robienia IO).  W ocamlu sprawa
niemal sie odwraca. Wszystko robi sie imperatywne przez ta (cholerna)
biblioteke.


> >  Na pewno zaleta OCAMLa jest szybki kompilator i bogactwo bibliotek.
> 
>   Szybki kompilator, tzn. szybko kompiluje, czy dobrze kompiluje?

No oczywiscie mialem na mysli, ze dobrze kompiluje. Choc szybki tez
jest.

andrzej

-- 
Re: Ktory?
#533
Author: DecatonE
Date: Mon, 24 Nov 2003 15:44
50 lines
3005 bytes
coccyx...

> biektowość 
> często pomaga w programowaniu.  Tak więc chyba lepiej móc coś zrobić
> na kilka sposobów?

Hmm... obejrz sobie jeszcze Mozarta i Alice.

Mają wspólną (lub w znacznej mierze wspólną) maszynę wirtualną.
Mozart był wcześniej i jest nieco bardziej rozwinięty, Alice
za to ma przyzwoitą składnię, opartą na SML'u w olbrzymiej części
(można mówić o jakimś poziomie kompatybilności wręcz).

Oba mają dużo bajerów :)

www.mozart-oz.org
www.ps.uni-sb.de/alice/ 

Cyt.
"Alice is a functional programming language based on Standard ML, 
extended with support for concurrent, distributed, and constraint 
programming. Alice extends Standard ML with several new features: 

Laziness:  combining strict and transparent lazy functional programming 
Futures:   "logic variables" and concurrency 
Higher-order modules: a more powerful module language 
Components:           platform-independence and type-safe dynamic
                      loading of modules 
Packages:     integrating static with dynamic typing and first class
              modules 
Pickling:  higher-order and platform-independent, type-safe persistence 
Constraints: solving combinatorical problems using constraints and 
             programmable search 

The Alice system is a powerful, open-source programming system 
featuring the following tools: 

Interactive system: an interpreter-like interactive toplevel 
Batch compiler:     separate compilation 
Static linker:      type-safe bundling of components 
Inspector:          a tool for interactively inspecting data structures 
Explorer:           a tool for interactively investigating search
                    problems 
Gtk+:               a binding for the Gnome toolkit GUI library"


adam
-- 
:: rectifier[X]mesa.eu.org :: e-mail (change [X] into @) ::
::         www.mesa.eu.org :: my b&w photographs         ::
Re: Ktory?
#531
Author: coccyx
Date: Mon, 24 Nov 2003 16:47
31 lines
2150 bytes
24 Nov 2003 16:31:48 +0100 w zerojedynkę zamieniając się Andrzej Wasowski <wasowski@see.my.sig>:

>  zauwaz ze piszac "niepotrzebne dyskusje" mialem na celu unikniecie
>  podobnej argumentacji. Postawilem sie po prostu poza tym
>  sporem. Niestosowne jest wiec napisanie "no wlasnie" i potem
>  argumentowanie za impertywnymi konstrukcjami, niby ze idac po moim toku
>  rozumowania.

  No, rzeczywiście powinienem przeprosić.

>  To jest wada w przypadku jezyka funkcjonalnego. Jak masz sie nauczyc
>  programowac funkcjonalnie, kiedy nawet takie stirngi sa imperatywne. W
>  zasadzie czegokolwiek sie niedotkniesz.

  No to chyba rzeczywiście.

>  W ocamlu sprawa niemal sie odwraca. Wszystko robi sie imperatywne przez ta 
>  (cholerna) biblioteke.

  No ale gdzie indziej pisze, że Ocaml ma więcej bibliotek niż inne funkcyjne.
Czyli albo rybki, albo akwarium?

> > >  Na pewno zaleta OCAMLa jest szybki kompilator i bogactwo bibliotek.

  Tej zalety nie sposób przecenić.  Jeśli chce się wygrać z C++ z jednej,
a Javą z drugiej strony.

jaq

-- 
...muutoksat mahdollisia.
Re: Ktory?
#532
Author: Andrzej Wasowski
Date: Mon, 24 Nov 2003 19:55
15 lines
1591 bytes
> >  W ocamlu sprawa niemal sie odwraca. Wszystko robi sie imperatywne
> >  przez ta (cholerna) biblioteke.
> 
>   No ale gdzie indziej pisze, że Ocaml ma więcej bibliotek niż inne
> funkcyjne.  Czyli albo rybki, albo akwarium?

Z ta cholerna to oczywiscie mnie ponioslo. Przepraszam. Wszyscy wiemy,
ze nie ma rzeczy idealnych. Biblioteka jest zle zaprojektowana z punktu
widzenia programowania funkcjonalnego. Jest jednak dobra ze wzgledu na
bogactwo (mialem tez na mysli biblioteki niestandardowe).

andrzej

-- 
Re: Ktory?
#534
Author: Adam Przybyla
Date: Tue, 25 Nov 2003 10:02
6 lines
1313 bytes
coccyx <mrok@salarrannsoknarfelagid.is> wrote:
>   BTW:  Czy istnieje port QT pod któryś z funkcyjnych, a jeśli nie, to czy 
> łatwo napisać wrapper?
	... w allegro byla mozliiwosc pisania interface do c i bibliotek.
Nie powinno byc z tym problemow. Z powazaniem
								Adam Przybyla
Re: Ktory?
#535
Author: Michał Politowski
Date: Tue, 25 Nov 2003 10:29
10 lines
1569 bytes
On Mon, 24 Nov 2003 15:29:28 +0000 (UTC), coccyx <mrok@salarrannsoknarfelagid.is> wrote:
[...]
>    BTW:  Czy istnieje port QT pod któryś z funkcyjnych, a jeśli nie, to czy 
>  łatwo napisać wrapper?

http://www.mimuw.edu.pl/~alx/SPFiL/tematy.php#obronione

-- 
Michał Politowski -- mpol@charybda.icm.edu.pl
Talking has been known to lead to communication if practised carelessly.
Re: Ktory?
#536
Author: coccyx
Date: Tue, 25 Nov 2003 13:58
15 lines
1597 bytes
Tue, 25 Nov 2003 10:29:49 +0000 (UTC) w zerojedynkę zamieniając się Michał Politowski <reply@reply-to.address>:

> >    BTW:  Czy istnieje port QT pod któryś z funkcyjnych?

>  http://www.mimuw.edu.pl/~alx/SPFiL/tematy.php#obronione

  Przyszłość rysuje się w różowych barwach .-)  Czy to poszło w świat?
Na listę ocamla, do trolltechu?  Jeszcze nie zacząłem czytać, ale jeśli
coś zostało zrobione przez jedną osobę, ma większe szanse być lepszym od
pracy grupy.  Z powodu tzw. big view.

jaq

-- 
...muutoksat mahdollisia.
Re: Ktory?
#537
Author: coccyx
Date: Tue, 25 Nov 2003 14:03
12 lines
1541 bytes
Tue, 25 Nov 2003 13:58:01 +0000 (UTC) w zerojedynkę zamieniając się coccyx <mrok@salarrannsoknarfelagid.is>:
>  Tue, 25 Nov 2003 10:29:49 +0000 (UTC) w zerojedynkę zamieniając się Michał Politowski <reply@reply-to.address>:
> >  http://www.mimuw.edu.pl/~alx/SPFiL/tematy.php#obronione
>  
>    Przyszłość rysuje się w różowych barwach 

  A może jednak nie.  Rozdział 5. o problemach - studzi zapały.

jaq

-- 
...muutoksat mahdollisia.
Re: Ktory?
#538
Author: DecatonE
Date: Tue, 25 Nov 2003 14:25
20 lines
1847 bytes
coccyx...

>   A może jednak nie.  Rozdział 5. o problemach - studzi zapały.

Zobacz sobie jeszcze Cleana:

http://www.cs.kun.nl/~clean/ 

Są tam przykłady gier i aplikacji okienkowych (scrabble).

Clean z tego co zdążyłem się domyśleć z comp.lang.functional
jest dość szanowanym językiem, a pod względem składni
najbliżej mu chyba do Haskella. Duża i porządna instrukcja ;)
Trochę bibliotek - sam zobacz czy wystarczą :)

adam
-- 
:: rectifier[X]mesa.eu.org :: e-mail (change [X] into @) ::
::         www.mesa.eu.org :: my b&w photographs         ::
::       http://groups.yahoo.com/group/KenWilberPL/      ::
Re: Ktory?
#539
Author: DecatonE
Date: Tue, 25 Nov 2003 14:29
7 lines
1351 bytes
DecatonE...

> Zobacz sobie jeszcze Cleana:

No chyba, że koniecznie ma być QT - z tym to już nie wiem.

adam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads