Articles of ocaml

Les unités de mesure F # peuvent-elles être implémentées dans OCaml?

F # a une capacité d’unités de mesure (il y a plus de détails dans ce document de recherche ). [] type unit-name [ = measure ] Cela permet de définir des unités telles que: type [] USD type [] EUR Et le code à écrire comme suit: let dollars = 25.0 let euros = […]

Appel du code ZeroMQ encapsulé dans OCaml à partir du gestionnaire de signaux

J’ai écrit des liaisons OCaml pour CZMQ basées sur le guide sur http://www.linux-nantes.org/~fmonnier/ocaml/ocaml-wrapping-c.php , qui semblent très bien fonctionner. Par exemple, voici zstr_send: CAMLprim value caml_zstr_send(value socket_val, value ssortingng_val) { CAMLparam2 (socket_val, ssortingng_val); void *sock = CAML_CZMQ_zsocket_val(socket_val); char *ssortingng = Ssortingng_val(ssortingng_val); int rc = zstr_send(sock, ssortingng); CAMLreturn (Val_int(rc)); } Je peux envoyer et recevoir des […]

Ocaml et Opam: module non lié Core

J’essaie d’installer un environnement ocaml et j’ai suivi les instructions de l’annexe A de la bêta Real World Ocaml. J’ai configuré opam et installé une version d’ocaml avec la commande $ opam switch 4.01.0dev+trunk qui a bien passé. J’ai alors fait un $ eval `opam config env` tirer les changements. Je suis au bon niveau, […]

Quand les objects doivent-ils être utilisés dans OCaml?

Habituellement, un programme OCaml peut être écrit avec ou sans objects. Quand est-il plus avantageux d’utiliser des objects et quand devraient-ils être évités?

concevoir de grands projets en OCaml

Quelles sont les meilleures pratiques pour écrire de grands projets logiciels dans OCaml? Comment structurez-vous vos projets? Quelles fonctionnalités d’OCaml devraient et ne devraient pas être utilisées pour simplifier la gestion du code? Des exceptions? Modules de première classe? GADTs? Types d’object? Système de construction? Cadre de test? Pile de bibliothèque? J’ai trouvé d’excellentes recommandations […]

Explication de la correspondance entre modèles et commutateur

J’ai essayé d’expliquer la différence entre les instructions de changement et la correspondance de motif (F #) à quelques personnes, mais je n’ai pas vraiment été capable de bien l’expliquer … la plupart du temps, elles me regardaient et disaient “pourquoi n’utilisez pas simplement if..then..else “. Comment leur expliqueriez-vous cela? MODIFIER! Merci à tous pour […]

Qu’est-ce qui est vraiment plus performant? Haskell ou OCaml

J’ai passé les 18 derniers mois à maîsortingser la functional programming, en commençant par apprendre OCaml et depuis quelques semaines Haskell. Maintenant, je veux passer à l’étape suivante et mettre en œuvre une application réelle: un éditeur de terrain en temps réel simple. J’ai écrit de nombreux moteurs de rendu de terrain en temps réel, […]

Quel est l’avantage d’une structure de données purement fonctionnelle?

Il existe un grand nombre de textes sur les structures de données et des bibliothèques de code de structures de données. Je comprends que la structure de données purement fonctionnelle est plus facile à raisonner. Cependant, j’ai du mal à comprendre le réel avantage d’utiliser une structure de données purement fonctionnelle en code pragmatique (en […]

Est-ce que! = A un sens dans OCaml?

Cela semble être une comparaison d’équivalence pour certains types, mais pas pour les chaînes. # 3 != 3;; – : bool = false # 3 != 2;; – : bool = true C’est comme prévu. # “odp” = “odp”;; – : bool = true # “odp” != “odp”;; – : bool = true # “odp” […]

Quelle est la manière préférée de structurer et de construire des projets OCaml?

Pour les nouveaux venus dans l’écosystème, il n’est pas clair quelle est la manière canoniquement préférée de structurer et de gérer la construction de projets OCaml de taille petite à moyenne. Je comprends les bases d’ ocamlc , etc. – elles reflètent suffisamment les compilateurs UNIX C classiques pour sembler simples. Mais, au-delà du niveau […]