6
votes

Comment puis-je dépouiller des espaces d'une chaîne dans Ocaml?

Pour apprendre les bases de OCAML, je résolvez l'un des easy Facebook Ingénierie Puzzles en l'utilisant. Essentiellement, j'aimerais faire quelque chose comme le code Python suivant:

some_str = some_str.strip()


0 commentaires

6 Réponses :


5
votes

Que diriez-vous de xxx

(via Code codex )


1 commentaires

Cette question est à la page supérieure de Google. Donc, pour une recherche rapide, je mets une réponse ici. C'est string.strip



7
votes

C'est vraiment une erreur de vous limiter à la bibliothèque standard, car la norme Ilbrary manque beaucoup de choses. Si, par exemple, vous deviez utiliser Core, vous pouvez simplement faire:

open Core.Std

let x = String.strip "  foobar   "
let () = assert (x = "foobar")


3 commentaires

Peut-être que j'aime mal. Les règles disent: "Vous n'êtes pas garanti de bibliothèques ni de plug-ins au-delà de ce qui fait partie de la langue / l'interprète lui-même." La distribution est INRIA OCAML. Core tombe-t-il sous cette catégorie?


Le noyau ne fait pas partie de la bibliothèque standard. C'est une bibliothèque tierce partie qui étend la norme (comme Extlib and Batteries). Vous pouvez le télécharger ici: JanestCapital.com/?q=node/13


String.strip est une fonction qui éliminera ce qui est défini par le paramètre 'Drop' '- ocaml.janestreet.com/ocaml-core/v0.9/doc/base/base/string/... Par défaut, 'Drop' est Whitapes / Tabs / etc. Donc, cela fera la même chose que String.Trim.



9
votes

Je sais que cette question est uber-old, mais je faisais attention à la même chose et je suis venu avec ceci (de Toplevel): xxx pré>

puis p>

strip "   Hello, world!   ";;
- : string = "Hello, world!"


0 commentaires

1
votes

Je crois au point où les autres réponses ont été données, la version 4.00 n'était pas encore sortie. En fait, dans OCAML 4.00, il existe une fonction string.trim dans le Module de chaîne pour couper les espaces blancs et traînants.

Alternativement, si vous êtes limité à une version plus ancienne d'OCAML, vous pouvez utiliser cette fonction copiée sans vergogne de la source du module de chaîne de 4,00. xxx


0 commentaires

0
votes

Quelque chose de simple comme ça devrait fonctionner bien: xxx


2 commentaires

Si vous fournissez une réponse nécessitant des drapeaux de compilation supplémentaires, veuillez inclure toutes les choses nécessaires pour compiler réellement ce code.


Merci d'avoir fait remarquer cela. J'ai ajouté l'exigence du module STR.



0
votes

La bibliothèque standard

String.trim


0 commentaires