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 = […]
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 […]
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, […]
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?
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 […]
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 […]
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, […]
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 […]
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” […]
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 […]