[linux-l] Ocml vs. Java

Oliver Bandel oliver at first.in-berlin.de
Fr Sep 23 08:09:48 CEST 2005


On Thu, Sep 22, 2005 at 05:07:06PM +0200, Volker Grabsch wrote:
> On Wed, Sep 21, 2005 at 11:49:05PM +0200, Oliver Bandel wrote:
> > OK, dann habe ich mich vielleicht ungünstig/mißverständlich ausgedrückt.
> > 
> > Eine Sprache nennt man funktional, wenn man Funktionen GENAUSO wie
> > andere Values behandeln kann. Tricksereien gelten nicht.
[...]

> > Für Ausgaben (weil anderer Typ) müsste man List.iter (bzw. in dem Beispiel List.iter2)
> > nehmen.
> > 
> > Daß das ergebnis da oben schon steht liegt daran, daß ich das im Toplevel
> > eingetippert habe.
> > 
> > List.iter2 (fun a b -> print_endline (string_of_int(a + b))) liste1 liste2

                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

statt:             print_endline (string_of_int(a + b))
ginge es auch so:  Printf.printf "%d\n" (a + b)

> 
> Also da fände ich eine Schleife aber sehr viel übersichtlicher. Hier
> fängt man an, IMHO, die funktionalen Konzepte zu missbrauchen, um
> schlecht lesbaren Code zu produzieren.
> 
> Man fängt nämlich an, Funktionen zu verweden an Stellen, wo eigentlich
> gar keine nötig sind. Egal, ob man sie nun inline definiert oder nicht,
> ist das unnötig schwer lesbar, IMHO.  In Python:
> 
> for a,b in zip(liste1,liste2):  print a+b
                                  ^^^^^^^^^^\
                                             \
                                 eine Funktion, wo garkeine nötig ist?

Oder hat Dich bloß die Syntax genervt, weil Du sie nicht verstanden hast?
Oder aus anderen gründen ablehnst?

Oder meinst Du das string_of_int?
Das ist nicht wegen FPL, sondern wegen des Typs so.


Ciao,
   Oliver



Mehr Informationen über die Mailingliste linux-l