Comment puis-je utiliser printf
dans une liste? J'ai une liste de nombres et je veux les imprimer tous en respectant un format (ex: %.3f
). J'ai essayé d'utiliser la carte sur printf
, mais cela ne fonctionne pas. Donc, je n'en ai aucune idée. Quelqu'un peut-il m'aider avec ça? Toutes les idées sont acceptables. Est-il possible de créer une chaîne à partir d'une liste respectant un format personnalisé?L'utilisation de "printf" dans une liste dans Haskell
1
A
Répondre
1
printf
peut produire des chaînes au lieu de simplement les imprimer sur stdout. Ce est parce qu'il est surchargé sur son type de résultat (c'est aussi une partie de la machinerie qui le rend variadique).
import Text.Printf
main :: IO()
main = putStrLn . unwords $ printf "%.3f" <$> ([1..10] :: [Double])
Cela devrait faire l'affaire.
BTW, printf
est de type pas sûr et peut souffler au moment de l'exécution. Je vous recommande d'utiliser quelque chose comme formatting
.
pouvez-vous s'il vous plaît ajouter ce que vous avez essayé - parce que je recommanderais en effet d'utiliser 'map' et je ne vois pas pourquoi cela ne devrait pas fonctionner – Carsten
dupliquer possible: https://stackoverflow.com/questions/36658890/is-there -a-way-to-use-print-avec-les-formats-de-printf-in-haskell – Carsten
Le résultat de 'printf' est polymorphique et ne peut pas être décidé sans contexte, essayez d'ajouter plus de signatures de type. – zakyggaps