[linux-l] RS-232 oder USB lesen mit (Schauder...) Java Os-unabhaengig

Oliver Bandel oliver at first.in-berlin.de
Mo Sep 26 16:05:07 CEST 2005


On Mon, Sep 26, 2005 at 03:15:34PM +0200, Oliver Bandel wrote:
[...]
> # a + b;;
> This expression has type MyRestricted.t but is here used with type int
> # add a b;;
> - : MyRestricted.t = <abstr>
> # let result = to_int (add a b);;
> val result : int = 89
> # let neues_result = to_int ( mul b c);;
> Exception: BorderInt(Border).Border_exception.
> # 
> ========================================================================
> 
> So, nun kann man sich an wertebegrenzten Intege-Typen erfreuen.
> 
> Das sind keine Emulationen durch Objekte, sondern Datentypen.
> Hat man ne Liste solche Werte (oder Array) kann man mit List.iter oder Array.iter
> dann  z.B. Werte ausgeben, oder so.
> 
> Oder mit map statt iter Ergebnislisten erzeugen.
> 
> Da man die im Typ eingebaute Prüfung auf diese Weise nicht mehr umgehen
> kann, macht das die ganze Programmierung dann sicher. :)
> 
> Ob man diese Datentypen dann in Listen, Arrays, anderen Moduln,
> Funktionen, Objekten oder Closures nutzt, ist egal.
> Sie werden behandelt wie andere Datentypen auch und eine Polymorphe
> Funktion wie List.iter oder List.map kann man darauf anwenden.
[...]


Ist vielleicht mißverständlich ausgedrückt.

Es müssen natürlich Funktionen vorhanden sein, die mit diesen Typen umgehen können.
Man hat aber im Ggs. zu Objekten keinen Laufzeit-Overhead. Und man hat
die nette Typprüfung. :)

Ciao,
   Oliver



Mehr Informationen über die Mailingliste linux-l