• # valeur vs pointeur

    Posté par . En réponse au journal Haskell -- Évaluation paresseuse. Évalué à 1.

    Je ne connais pas Haskell, mais l'évaluation ou non des paramètres d'une fonction, ça me fait penser à un passage d'argument par valeur ou par pointeur/réference...

    En c:

    int resultat( int longCalculA, int longCalculB )
    {
     if( !longCalculA )
     return longCalculA;
     else
     return longCalculB;
    }
    void main()
    {
     resultat( longCalculA(), longCalculB() );
    }

    exécutera les 2 fonctions pour pouvoir passer leur valeurs de retour en arguments.

    Alors qu'en passant les adresses des fonctions en arguments:

    int resultat( int (*longCalculA)(), int (*longCalculB)() )
    {
     int a = longCalculA();
     if( !a )
     return a;
     else
     return longCalculB();
    }
    void main()
    {
     resultat( &longCalculA, &longCalculB );
    }

    Seul longCalculA() sera exécuté si il retourne 0.