IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Haskell Discussion :

Question concernant une fonction takeWhile' remaniée


Sujet :

Haskell

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut Question concernant une fonction takeWhile' remaniée
    Bonjour,

    Je ne comprends pas ce que signifie exactement la partie "f x = x : takeWhile' f xs" (ligne 3) du code ci-dessous :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    takeWhile' :: (a -> Bool) -> [a] -> [a]
    takeWhile' _ [] = []
    takeWhile' f (x:xs)
      | f x = x : takeWhile' f xs
      | otherwise = takeWhile' f xs
    Exemple d'application de cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    takeWhile' (>5) [2,90,1,900,3,43]
    résultat : [90, 900, 43]
    Est-ce que quelqu'un pourrait me l'expliquer ?

    Merci pour votre aide.

  2. #2
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    Ici, "f x" joue le rôle de garde. La même fonction pourrait s’écrire de manière équivalente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    takeWhile' f (x:xs) = if f x
        then x : takeWhile' f xs
        else takeWhile' f xs
    Au passage, cette fonction est très mal nommée et n’est pas synonyme de takeWhile, mais de filter.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour la réponse elle m'a été bien utile !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. question sur une fonction
    Par elmcherqui dans le forum Qt
    Réponses: 4
    Dernier message: 07/07/2008, 19h11
  2. Simple question concernant une requeTe
    Par unix27 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/11/2006, 22h11
  3. [oracle8i] Questions concernant une procédure
    Par sartorius dans le forum Oracle
    Réponses: 1
    Dernier message: 26/10/2006, 17h31
  4. question concernant les fonctions surchargé
    Par lazzeroni dans le forum Oracle
    Réponses: 4
    Dernier message: 28/06/2006, 10h41
  5. Réponses: 5
    Dernier message: 25/11/2003, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo