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

Lisp Discussion :

[CLISP] APPLY et OR


Sujet :

Lisp

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [CLISP] APPLY et OR
    Bonjour,

    une fonction sous CLISP me retourne une liste de booléens sous cette forme

    Je veux savoir si il y a au moins un true dans le resultat et j'ai essayé via un apply sur un or. Bien sur, cela ne fonctionne pas car OR est une macro et non une fonction. Cependant, je ne sais pas comment contourner le probleme. Des idées?

    Merci d'avance de votre aide!

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Je ne connais que peu LISP mais en LISP T=true et NIL=false.
    Donc si ta fonction te renvoie une liste de booléens contenant ce que tu a ecrit, oui elle contient des valeurs vraies.

    Pour parcourir des elements d'une liste, tu peux utiliser car et cdr, comme en scheme, car renvoie le premier element et cdr le reste de la liste.

    donc prendre le premier element car(Liste)
    le deuxieme -> cadr(liste)
    le troisieme -> caddr(liste)
    ...

    ici tu pourras comparer avec tes or non?

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 152
    Points : 275
    Points
    275
    Par défaut
    Bonjour !

    Tu pourrais peut-être même te passer de la liste des booléens en utilisant MEMBER, MEMBER-IF, FIND, FIND-if, ou bien SOME et EVERY. Par exemple, si tu veux savoir s'il y a un élément non-NIL dans une liste LST, tu peux écrire
    ce qui renvoi T ou NIL
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (find-if #'identity lst)
    ce qui renvoi le premier élément non-NIL.

    À propos, ce n'est pas du tout particulier de GNU CLISP, ça appartient à la norme ANSI.

Discussions similaires

  1. Linker une appli en C++Builder 6, sous Window
    Par toni dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/12/2004, 09h04
  2. [Appli][Autre language]dll-contenant form
    Par flash dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2002, 14h18
  3. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  4. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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