Diskussion:OCaml
Wie spricht man OCaml eigentlich aus? "Oh Camel", "Oca em ell" oder "Objective Camel"?
Str: Franzosen sagen "oca'melle", englisch hört man meist "oh 'camel" (wie das gleichnamige Tier auf engl.), das Apostroph steht vor der Betonung. Quelle: Youtube. Deutsch empfehle ich ein einfaches "ohkahml".
Laut der Mailingliste und der Diskussionen auf der Mailingliste ist "Oh Camel", oder "Objective Camel" gängig, geschrieben wird in der Regel Ocaml oder auch nur Caml, OCaml ist eher untypisch.
Str: OCaml ist eher untypisch weil zu pedantisch, ist aber korrekt. Das Programm (Binary) heißt ocaml.
- "Oca em ell" wird von denen verwendet die denken das "ml" in Ocaml sei das gleiche wie in ML der Programmiersprache, dem ist jedoch nicht so. Ocamlbenutzer wollen ihre sprache flüssig aussprechen können, daher auch die schreibweise mit nir einem Großbuchstaben.
Meines Wissens ist OCaml nicht statisch typisiert, sondern streng typisiert.
- Es ist sowohl statisch als auch streng typisiert.
- Statisch typisiert bedeutet, dass der Compiler bei der Uebersetzung die Typen ueberprueft. Dies ist in OCaml der Fall.
- Der Begriff strenge Typisierung, da bin ich mir nicht ganz genau im Klaren, wie der definiert ist. Sicherlich wird es dadurch verletzt, dass eine Programmiersprache automatisiert Werte von einem Typen in einen Wert eines anderen Typen konvertiert, wie dies z.B. in JavaScript der Fall ist. Falls man den Begriff "strenge Typisierung" in einem noch staerkeren Sinne versteht, kann er auch bedeuten, dass dies Casts, wie z.B. in Java oder C durch (int) x, unterbindet.
- Da OCaml keine Casts kennt, und auch keine Werte automatisiert konvertiert, erfuellt OCaml aber denke ich beide mir bekannt Interpretationen des Begriffs.
- -- Phillip 17:52, 10. Nov. 2009 (CET)
Module, oder doch eher Klassen?
BearbeitenEines ist ganz klar: OCaml hat Module, und Module sind keine Klassen. Das wird von allen so vertreten (caml-list@inria.fr). Gleichzeitig hat OCaml Objekte (das O in OCaml), Objekte mit und ohne Vererbung. Empfohlen für Paket- und Bibliothek-Autoren ist die Benutzung von Modulen, Klassen werden nicht so gern gesehen. In der Objektorientierung findet auch keine Weiterentwicklung statt. (Viel verwirrendes Zeug gelöscht, im Thema ML / OCaml mit Units in Pascal anzukommen ist nicht hilfreich.)
Breitensubtyping
BearbeitenIm Artikel Duck-Typing wird erwähnt, daß Ocaml angeblich Breitensubtyping unterstütze; das ist aber nicht näher erläutert und auch nicht verlinkt. Kann hier jemand erklären, was das sein soll? Ansonsten würde es nämlich jucken, diesen Satz zu löschen. --Tobias 09:30, 24. Jul. 2009 (CEST)
- Duck-Typing erlaubt es, die Objecte nur anhand der Methoden, die sie besitzen, zu verwenden. Dies ist in OCaml auch der Fall, da das Objekt System von OCaml (das ist im Artikel nicht beschrieben) Breitensubtyping einsetzt. Aus diesem Grund macht OCaml auf statischer Ebene das, was Roby dynamisch erledigt, wenn es eine Methode eines Objekts aufruft. (nicht signierter Beitrag von PhillipH (Diskussion | Beiträge) 18:10, 10. Nov. 2009 (CET))
Name change
BearbeitenThe language name has been changed to "OCaml", see OCaml's name, so this page should probably be renamed. Elopash 09:49, 29. Aug. 2011 (CEST)
Kann das mal gemacht werden - der Name ist definitiv OCaml. Strobel. (nicht signierter Beitrag von 77.10.6.155 (Diskussion) 08:57, 5. Dez. 2022 (CET))
fuer die beispiele
Bearbeitendas programm debmirror ist auch in ocaml (nicht signierter Beitrag von 188.174.150.11 (Diskussion) 17:28, 31. Aug. 2011 (CEST))
REKURSION ??
Bearbeiten"Dieses Beispiel zeigt die Mächtigkeit der funktionalen Programmierung: Die Funktion „wiederhole“ kann eine beliebige Funktion mehrfach auf sich selbst anwenden."
Nennt man so was nicht rekursives Programmieren ? (Funktion ruft sich selbst auf) ?? 31.19.64.22 20:56, 13. Jun. 2013 (CEST)
Str. (Diskussion) Ja, das ist Rekursion, eine ganz typische Technik in der funktionalen Programmierung (FP). --Str. (Diskussion) 19:07, 22. Okt. 2015 (CEST) Das Beispiel halte ich für "unsinnig" weil kein Sinn der Aktion oder der Struktur klar wird. Ich versuche mal was zu entwerfen.
Neue Version
BearbeitenDie Version 4.0.5 ist von mir in OCamls Wikidata Artikel eingetragen und hier ist immer noch 4.0.4 aktuell.
https://www.wikidata.org/wiki/Q212587
Das Problem scheint weiterhin zu bestehen - ich habe kürzlich 4.0.7 in Wikidata ergänzt - hier wird immer noch 4.0.4 angezeigt!