9
votes

Modules OCAML Mise en œuvre

La bibliothèque standard de OCAML contient divers modules: Liste , , , Nativeint , etc. Je sais que les interfaces pour ces modules sont fournies (par exemple pour le Module de liste ), mais je suis intéressé dans les algorithmes et leurs implémentations utilisées dans les fonctions des modules.

Où puis-je trouver ça?


0 commentaires

3 Réponses :


5
votes

Vous pouvez trouver les définitions du code source OCAML. Par exemple, la mise en œuvre de la carte fonctionne est dans stdlib / map.ml dans la distribution de la source OCAML.


0 commentaires

4
votes

Ils doivent déjà être installés sur votre système. Très probablement (en supposant un système UNIX), ils sont situés dans / usr / lib / ocaml ou / usr / local / lib / ocaml. Il suffit d'ouvrir n'importe lequel des fichiers .ml .


0 commentaires

19
votes

6 commentaires

Pouces vers le haut ! (Voici le blog poteau, mais je trouve un peu trop arcan pour un débutant: OCAML. Janestreet.com/?q=node/71 )


Quelqu'un peut-il clarifier la différence entre les première et deuxième implémentations? Quand je les exécute dans OCAML et F # Je reçois 123 pour les deux, jamais 321. Étant donné que cette réponse a 7 ans, peut-être que OCAML et F # changèrent fondamentalement, mais j'en doute? (Je n'utilise pas list.Map, je teste les deux fonctions de carte personnalisées telles -es)


@gasche aucune idée?


Je peux reproduire le fait que ignorer (carte print_int [1; 2; 3]) imprimera 321 pour les versions récentes de OCAML avec le FA :: MAP F LI Version de carte. @jayphelps, quelque chose peut être faux avec votre configuration de test.


@gasche merci! Jayphelps a posé sa propre question, qui a conduit à plus de discussions sur cette question (surtout dans les commentaires): Stackoverflow.com/questions/43882340/...


@gasche ouais L'incohérence était la repluée les a évaluées dans un ordre différent - mais ma question fondamentale ne réalisait pas OCAML (contrairement à F # et SML) ne garantit pas l'ordre d'évaluation. C'est "non spécifié"