Benutzer:Turelion/Ocaml Tutorial/Ideen

Aus Wikibooks

OCaml Tutorial

Vorwort[Bearbeiten]

allgemeine Konzepte[Bearbeiten]

Kommentare[Bearbeiten]

Die Erzeugung von Kommentaren orientiert sich an C/C++.

(* Einzeiliger Kommentar *)

(* Mehrzeiliger
   Kommentar *)

Erzeugung ausführbarer OCaml-Dateien[Bearbeiten]

Anweisungen[Bearbeiten]

Variablen[Bearbeiten]

Deklaration[Bearbeiten]

OCaml unterscheidet zwischen Ganzzahlen und Fließkommazahlen, außerdem stehen Zeichenketten zur Verfügung. Dadurch entstehen einige Schwierigkeiten, und man wird zu sauberer Programmierung gezwungen. Der Typ der Variablen wird durch die Wertzuweisung festgelegt.

Weitere Datentypen: bool (* Wahrheitswert. Kann mit true oder false belegt werden *) char (* Einzelzeichen *) unit (* Geschrieben: () *)


Wertzuweisung[Bearbeiten]

 let ausdruck = ausdruck
 
 let a = 1	(* Ganzzahl *)
 let b = 1.0   (* Fließkommazahl!! 
                  Man beachte, daß im englischen Sprachraum der Punkt die Funktion unseres Kommas übernimmt *)
 let c = "Hallo Wikibookleser!!"	(* Zeichenkette *)
               
                  

Typumwandlungen[Bearbeiten]

OCaml stellt eine Reihe von Typumwandlungsfunktionen zur Verfügung, die normal wie andere Funktionen aufgerufen werden.

float_of_int 		(* Wandelt eine Ganzzahl in eine Fließkommazahl um *)
int_of_float		(* Der umgekehrte Fall *)
char_of_int		(* Wandelt eine Ganzzahl in ein Einzelzeichen um *)
int_of_char		(* und umgekehrt *)
string_of_int		(* Ganzzahl => Zeichenkette *)
...

Für float_of_int hat sich eine Kurzschreibweise durchgesetzt

float  		(* Wandelt eine Ganzzahl in eine Fließkommazahl um *)

Feldvariablen[Bearbeiten]

Verbundvariablen[Bearbeiten]

Operatoren[Bearbeiten]

Wie schon erwähnt, unterscheidet OCaml zwischen Ganzzahlen und Fließkommazahlen. Daraus folgt, daß man mit '/' lediglich Ganzzahlen dividieren kann. Für Fließkommazahlen kommt der Operator '/.' zum Einsatz. Gleiches gilt für die anderen Grundrechenarten.

Fallunterscheidungen[Bearbeiten]

OCaml verfügt über eine Fallunterscheidung mit 'If'. Diese wird aber selten genutzt. Stattdessen kommt hier eines der Kernkonzepte von OCaml zum Einsatz.

Ein Suchbegriff wird als Funktionsname verwendet, der mit einem Anweisungssatz zu einer Funktion ausgestattet wird. Die Funktion wird ausgelöst, wenn der entsprechende Suchbegriff im Datenstrom auftaucht.

Schleifen[Bearbeiten]

Unterfunktionen[Bearbeiten]

Deklaration[Bearbeiten]

 let funktionsname parameter1 parameter2 ... =
   kommando1
   kommando2
   kommando3
   ...;;
   

Beispiel:

 let durchschnitt a b =
   (a +. b) /. 2.0;;
   

Funtionen, die recursiv (selbstaufrufend) gebraucht werden sollen, benötigen das Schüsselwort 'rec'.

 let rec funktionsname parameter1 parameter2 ... =
 ...

Aufruf[Bearbeiten]

Der Funktionsname und die Parameterliste werden ausschließlich durch Leerzeichen getrennt.

 funktionsname parameter1 parameter2 ...
 

Besteht ein Parameter selber aus einem Funktionsaufruf, wird der gesamte Parameterausdruck eingeklammert

 funktionsname1 (funktionsname2 unterparameter1 unterparameter2 ...) parameter2 ...

OCaml-spezifische Konzepte[Bearbeiten]