gars s'il vous plaît me dire pourquoi cela ne compilecompilation printf dans haskell
putStrLn("The average number of fans for the films of " ++ actor ++ " is : " ++ printf "%.2f\n" (show(countAveFans actor testDatabase))
Son à simple mais je ne peux pas penser pourquoi il ne marche pas work.I essayer de convertir le tout à chaîne et prendre la 2 décimales Point impression out.Thanks
Vous pourrait vouloir éviter 'printf'. C'est plutôt bizarre. – dfeuer
Mais si vous voulez l'utiliser, vous devriez probablement l'utiliser pour toute la chaîne: 'putStrLn $ printf" La moyenne ... films de% s est:% .2f "acteur (countAveFans actor testDatabase)' – dfeuer
@dfeuer If vous l'utilisez pour toute la chaîne, notez que 'printf ...' peut aussi être utilisé comme une action 'IO', donc vous n'avez pas besoin de' putStrLn'. (Bien que vous ayez besoin alors d'un '\ n 'supplémentaire.) Cependant, je suspecte que l'employer sur la chaîne entière est réellement moins efficace, parce qu'il doit alors analyser à l'exécution les parties de la chaîne qui ne contiennent pas'% 's ... –