10
votes

Haskell convertit flotteur vers int

Je suis toujours nouveau et j'essaie de créer une liste d'utilisation dans une fonction et de le garder aussi petit que possible qui se trouve être logbase x y. Mais j'ai du mal à obtenir la logbase dans quelque chose que je peux utiliser dans cette liste.

[1 .. (logbase x y)]

Toute suggestion?


0 commentaires

3 Réponses :


2
votes

Vous voulez probablement une sorte d'arrondi, de tronquage, de sol ou de plafond. Les intégrations et les flotteurs sont des types différents (comme vous l'avez vu) et le compilateur ne vous laissera pas les mélanger. Je trouverai une référence dans une minute.


0 commentaires

8
votes

Vous voulez probablement une liste de fonctions ici . hoogle et Hayoo! sont d'excellents outils pour ce genre de chose puisqu'ils vous permettent de mettre dans le type de fonction que vous souhaitez et récupérez une liste de fonctions. Avec le système de type riche de Haskell, cela peut être un outil très utile, bien plus que des langues dactylographiques dactylographiques ou même des langages typés de manière statique comme C ou Java.


0 commentaires

10
votes

Vous ne postez pas quelle erreur de type vous obtenez, mais j'imagine que c'est quelque chose comme ceci: xxx pré>

Le problème est que: p>

Prelude> :set -XNoMonomorphismRestriction
Prelude> let x = 2
Prelude> let y = 42
Prelude> [1 .. truncate (logBase x y)] 
[1,2,3,4,5]


0 commentaires