[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