Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 9 sur 334 PremièrePremière 12345678910111213141516171959109 ... DernièreDernière
Affichage des résultats 241 à 270 sur 10008
  1. #241
    Non. Je ne pense pas qu'il existe quelqu'un qui soit capable d'un tel exploit sur cette planète, sans parler d'ici.

    (Je suppose que la réponse "bah c'est simple, une monade c'est un endofoncteur muni de deux transformations naturelles F et G" ne satisfait pas ton critère de simplicité.)

  2. #242
    Purée.

    Alors, est-ce que tu peux me dire si je m'approche de la vérité en disant (d'après ce que j'ai pu comprendre) qu'une monade c'est un type décrivant une certaine opération, que l'on peut instancier pour un certain type de paramètres (et de retour), et appliquer dans un contexte particulier ?

    Par exemple, l'opération "catcher une exception" serait une monade que l'on peut instancier avec différents types d'exceptions, et utiliser ensuite ces différentes instances à différents endroits du code (différents contextes) ?

    Ou bien ce n'est pas ça ?
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  3. #243
    Je suis nul en théorie des catégories. Je ne comprends rien aux formalismes, mais ma stratégie quand je vois un objet comme ça est de chercher un maximum d'exemples concrets et de retrouver ce qu'ils ont en commun.

    Un monade, pour moi c'est un brochette dans laquelle tu peux enfiler des bouts de gras, mais pas les retirer. Par exemple un flux sur lequel tu fais des printf. Ou un résultat obtenu par une suite d'opérations qui peuvent chacune lever une exception.
    Mais honnêtement je n'ai jamais vraiment compris, donc je veux bien une explication aussi.

  4. #244
    Un monade, pour moi c'est un brochette dans laquelle tu peux enfiler des bouts de gras, mais pas les retirer.
    La voilà notre explication !! Hourra
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  5. #245
    +1
    J'aime la programmation par les brochettes.

  6. #246
    Citation Envoyé par Møgluglu Voir le message
    C'est quoi Truc? Tes variables partagées sont bien toutes déclarées en volatile? Comment tu vois quand Truc change?
    Truc c'était la commande de mon potentiomètre numérique (je le mets à 1, je change sa valeur, puis le repasse à 0), je le mesurais à l'oscillo.
    Pour le volatile, je me souviens avoir essayé d'y passer certaines variables, mais ça n'avait rien changé (mais je crois pas les avoir toutes testées).

    Si tu n'utilises pas de float, le compilo n'incluera pas la bibliothèque de calcul virgule flottante au moment du link. Donc tu évites un gros paquet de code, ça change complètement l'emplacement de tes fonctions et tes données. Tu peux avoir un bug un peu subtil (genre accès hors limites, variable non initialisée, etc.) qui passe inaperçu quand la lib softfloat n'est pas chargée et qui déclenche l'apocalypse le reste du temps.
    Ok, mais j'ai le vague souvenir (oui ça va être dur de trouver le problème si je ne me souviens de rien ) que juste déclarer un float (sans rien lui faire faire) ne posait pas de problèmes.

    Idem quand tu déplace du code d'une fonction à une autre. En C on peut souvent trouver des cas où un programme à l'air de fonctionner correctement, mais ce n'est pas parce que tu as trouvé des conditions dans lesquelles ça ne plante plus que le bug est corrigé.
    Oui, c'est probablement ce que j'ai fait pour mon histoire de programme qui rentre dans une condition alors qu'elle est fausse.

    Bref, sans voir le code, impossible de te répondre plus précisément. Tu n'as pas un valgrind-like dans tes outils de dev?
    Un quoi ? De toutes façons j'ai plus de quoi tester le programme là.
    C'est quel code que tu veux voir ? L'interruption et ses sous-fonctions ?

  7. #247
    Citation Envoyé par rOut Voir le message
    D'ailleurs pourquoi tu veux changer ? Ça rame ? T'es sûr que ça vient de ta couche réseau ?
    Parce que bon, faut pas oublier non plus le vieil adage : "Quand ça marche, on ne touche pas."
    Ben sachant que j'en suis qu'au tout début, non ça rame pas
    Je verrai si j'arrive à sortir un truc et si plusieurs personnes se connectent comment ça va se passer

  8. #248
    Citation Envoyé par rOut Voir le message
    La voilà notre explication !! Hourra
    Mais tu peux aussi considérer qu'une monade représente l'état d'un système.
    À force qu'on leur dise "la programmation fonctionnelle çaynul, tu peux même pas faire d'effets de bord", les lambdacalculistes et autres catégorithéoristes on dit : tiens, tu vois ce truc? C'est une monade. Ça contient l'univers entier. Tu passes l'univers en paramètre d'une fonction à une autre, et les fonctions peuvent modifier l'univers. Tiens, dans ta gueule les effets de bord.

    Pour être plus subtil on n'est pas obligé de mettre tout l'univers dans la monade. Dans ce cas on a l'équivalent d'un objet dans un langage orienté objet : on peut construire l'objet, changer son état ou récupérer des infos sur son état en appelant ses fonctions membres, mais on ne peut pas regarder directement ce qu'il y a dedans.

    Citation Envoyé par Robix66 Voir le message
    Ok, mais j'ai le vague souvenir (oui ça va être dur de trouver le problème si je ne me souviens de rien ) que juste déclarer un float (sans rien lui faire faire) ne posait pas de problèmes.
    Oui, juste déclarer un float ça ne change rien, c'est quand tu instancies l'opérateur d'addition par exemple qu'il va faire le link avec la fonction ad-hoc.

    Un quoi ? De toutes façons j'ai plus de quoi tester le programme là.
    C'est quel code que tu veux voir ? L'interruption et ses sous-fonctions ?
    Un outil qui détecte les accès hors limites / variables non initialisées / fuites mémoires comme valgrind.
    L'erreur peut être à peu près n'importe-où dans le programme, et c'est pas juste en lisant le code qu'on s'en rendra compte de toute façon...

  9. #249
    Citation Envoyé par Robix66 Voir le message
    Plus tard dans le programme, j'ai besoin d'effectuer des calculs avec des floats, sauf que la bestiole se met à ramer et donc à faire n'importe quoi vu qu'il passe tout son temps dans l'interruption.
    "Ok, il est très lent à utiliser les floats, je vais les enlever... wait ". Le programme ramait quand même, même si les opérations sur les flottants n'étaient pas effectuées, genre si je les mettais dans une fonction jamais appelée. Si je les foutait en commentaire, ça remarchait proprement.
    L'explication probable est qu'inclure du flottant nécessite un support par bibliothèque (comme le disait l'ingénieur reconverti en cycliste). Du coup ça perturbe le placement des fonctions et augmente la probabilité que ta routine critique ne soit plus placée dans la mémoire on-chip, et là patatras les performances s'effondrent. Normalement tu dois pouvoir forcer le linker à mettre certaines fonctions à des adresses particulières ce qui devrait solutionner ton problème.

  10. #250
    Citation Envoyé par Møgluglu Voir le message
    À force qu'on leur dise "la programmation fonctionnelle çaynul, tu peux même pas faire d'effets de bord", les lambdacalculistes et autres catégorithéoristes on dit : tiens, tu vois ce truc? C'est une monade. Ça contient l'univers entier. Tu passes l'univers en paramètre d'une fonction à une autre, et les fonctions peuvent modifier l'univers. Tiens, dans ta gueule les effets de bord.
    J'adore tes explications.

    ---------- Post added at 12h22 ---------- Previous post was at 10h30 ----------

    Dites les coins,
    je suis un vétéran du Visual C++ mais dans le cadre d'un projet perso j'envisage de passer sur un environnement différent (impérativement gratuit).

    Le projet est une bibliothèque de calcul, j'i donc besoin de compilateur performant, pouvant gérer OpenMP et générer un code très optimisé. Pas de GUI donc.

    Evidemment, j'ai jeté un oeil à Eclipse / CDT /GCC, ça m'a l'air parfait, des avis / conseils ?

  11. #251
    Si tu rentres dans les clous, icc doit être meilleur que gcc (FAQ).

    Il y a aussi PathScale, qui a la réputation d'être rapide pour le calcul scientifique.

    Tout ça sous Linux.

  12. #252
    Citation Envoyé par TiNitro Voir le message
    J'adore tes explications.

    ---------- Post added at 12h22 ---------- Previous post was at 10h30 ----------

    Dites les coins,
    je suis un vétéran du Visual C++ mais dans le cadre d'un projet perso j'envisage de passer sur un environnement différent (impérativement gratuit).

    Le projet est une bibliothèque de calcul, j'i donc besoin de compilateur performant, pouvant gérer OpenMP et générer un code très optimisé. Pas de GUI donc.

    Evidemment, j'ai jeté un oeil à Eclipse / CDT /GCC, ça m'a l'air parfait, des avis / conseils ?
    C'est parfait.

    ---------- Post added at 13h28 ---------- Previous post was at 13h26 ----------

    Enfin l'indexeur en chie un peu sur du code C++ poilu, mais en le laissant bosser un moment tranquille pour la première indexation, après c'est bon.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  13. #253
    Merci les coins.

    @newbie: je rentre dans les clous, rentrer dans les clous c'est mon truc. Y pas de clous qui me résiste Blague à part, je vais voir l'intégration de ICC dans Eclipse.

    @rOut: j'ai l'impression que tous les indexeurs en chient hein, celui de Visual 2010 est à la rue aussi. Après si le MT est bien géré, ça se met à jour en tâche de fond, et même s'il faut patienter pour la prise en compte d'une modification, au moins ça ne pourrit pas l'IDE.

  14. #254
    Non mais c'est juste la première, ou il doit parser toutes les libs. Après il gère bien les petites modifs.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  15. #255
    Citation Envoyé par Møgluglu Voir le message
    Oui, juste déclarer un float ça ne change rien, c'est quand tu instancies l'opérateur d'addition par exemple qu'il va faire le link avec la fonction ad-hoc.

    Un outil qui détecte les accès hors limites / variables non initialisées / fuites mémoires comme valgrind.
    L'erreur peut être à peu près n'importe-où dans le programme, et c'est pas juste en lisant le code qu'on s'en rendra compte de toute façon...
    Citation Envoyé par newbie06 Voir le message
    L'explication probable est qu'inclure du flottant nécessite un support par bibliothèque (comme le disait l'ingénieur reconverti en cycliste). Du coup ça perturbe le placement des fonctions et augmente la probabilité que ta routine critique ne soit plus placée dans la mémoire on-chip, et là patatras les performances s'effondrent. Normalement tu dois pouvoir forcer le linker à mettre certaines fonctions à des adresses particulières ce qui devrait solutionner ton problème.
    D'accord, je le saurais pour la prochaine fois (enfin, je saurais où poser ma question, pourtant c'est pas faute d'avoir fait se casser le crâne dessus à quelques personnes qui se démerdent bien).
    Sur ce problème là aussi, je le mets juste pour le plaisir (et me faire vanner sur mon code moche ).



    Là, d'une part le programme ne s'est pas arrêté au point d'arrêt, mais à la ligne suivante (même si le contenu du if a bien été exécuté), du coup je pense que c'est du au debuggeur. On peut voir que le programme est rentré dans la boucle alors que n=1 (ou alors 0, mais ça ne change pas qu'il n'aurait pas du y rentrer).
    Il était beau celui-là, peut être le retour du bug précédent en fait.

  16. #256
    Citation Envoyé par Møgluglu Voir le message
    Mais tu peux aussi considérer qu'une monade représente l'état d'un système.
    À force qu'on leur dise "la programmation fonctionnelle çaynul, tu peux même pas faire d'effets de bord", les lambdacalculistes et autres catégorithéoristes on dit : tiens, tu vois ce truc? C'est une monade. Ça contient l'univers entier. Tu passes l'univers en paramètre d'une fonction à une autre, et les fonctions peuvent modifier l'univers. Tiens, dans ta gueule les effets de bord.

    Pour être plus subtil on n'est pas obligé de mettre tout l'univers dans la monade. Dans ce cas on a l'équivalent d'un objet dans un langage orienté objet : on peut construire l'objet, changer son état ou récupérer des infos sur son état en appelant ses fonctions membres, mais on ne peut pas regarder directement ce qu'il y a dedans.
    Ok, si je comprends bien une monade, c'est un wrapper autour d'un certain type d'opération.
    Le type d'opération sur lequel peut s'appliquer la monade est déterminé par la signature de l'opération (types d'entrée/sortie). La monade elle même possède une signature propre, mais (je ne sais pas si c'est indispensable) le même type de retour que le type d'opération qu'elle wrappe.

    On instancie une monade en lui donnant une fonction respectant la signature des opérations supportées par la monade, et on peut utiliser ensuite l'instance comme une fonction donc la signature sera différente et qui fera des choses en plus autour de la fonction en question.

    C'est un genre de méta-foncteur en fin de compte, qui s'instancie à l'aide d'un foncteur, et dont les instances sont des foncteurs de signature différente.

    Je suppose qu'il n'y a pas de contraintes sur les opérations que peut faire une monade (peut être me trompe-je), mais les utilisations classiques seraient par exemple :
    Pour toute fonction prenant une valeur en paramètre et retournant une liste, une monade "MapReduce" représente l'action d'appliquer une fonction à chaque élément d'une liste, et retourner la concaténation des listes des résultats. Ce qui permet de composer les fonctions wrappées par la monade, alors qu'une composition n'était auparavant pas possible du fait de la différence des types d'entrée/sortie (valeur/liste) des fonctions.

    Je suppose que le terme Monade s'applique à n'importe quoi d'autre, et pas juste aux wrappers permettant la composition de fonctions. Et qu'une instance de Monade n'est pas forcément composable.

    En fait c'est naze.

    Je voulais savoir ce que c'était parce que je suis tombé là dessus : http://abel.web.elte.hu/mpllibs/metamonad/index.html ou le mec a implémenté des monades pour templates en C++. Autant en C++ ça se fait avec un bête foncteur, autant je comprends que les templates étant une forme de langage fonctionnel, c'est un peu plus tendu. Et du coup, ce qui est fait en Haskell s'applique aussi pour résoudre les mêmes problèmes.
    Dernière modification par rOut ; 12/09/2011 à 20h48.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  17. #257
    Citation Envoyé par rOut Voir le message
    C'est un genre de méta-foncteur en fin de compte, qui s'instancie à l'aide d'un foncteur, et dont les instances sont des foncteurs de signature différente.
    Putain, mais je t'avais bien dit que c'était un endofoncteur muni de deux transformations naturelles.

  18. #258
    Non mais t'es trop abscons dans tes explications, c'est pour ça que je n'avais pas compris.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  19. #259
    Hello,
    J'ai besoin d'un petit coup de pouce Javascript. En fait je veux simplement générer un bouton que quand on clic dessus ca lance une fonction javascript. J'ai réussi à créer le bouton, par contre pas moyen de lui assigner la fonction a lancer. Bien sur j'ai chercher sur le net, mais à part trouver un site ou il montre comment générer des boutons qui ne servent à rien. J'ai pas trouvé mon bonheur.
    J'ai essayé cela*:
    Code:
     function raymonde(){
       // Imaginez du code ici.
     }
    
      var roger;
    
      var bpRaymonde = document.createElement('input');
      bpRaymonde.name = "bpRaymonde";
      bpRaymonde.type = "button";
      bpRaymonde.value = 'Prendre';
    
      bpRaymonde.onClick =  "raymonde(roger)"; // Essayé aussi sans guillemets
      bpRaymonde.action =  "raymonde(roger)"; // Essayé aussi sans guillemets
      document.body.appendChild(bpRaymonde);
    J'ai essayé aussi un
    Code:
    bpRaymonde.addEventListener('onClick', raymonde(roger), false);
    * Les noms des variables et fonctions ont été changées afin de respecter leur anonymat.

    Help ....

    Bien sûr ca n'a pas fonctionné sinon je ne serai pas là.

  20. #260
    Et comme cela :
    Code:
    <input type=button name='bpRaymonde' value="Prendre" onClick="raymonde(roger)" />
    ?
    Avec roger en variable globale et raymonde en fonction bien sur.

    (on voit bien la parenté entre Flex et javascript quand même).

  21. #261
    Ca fonctionnerait bien avec FF mais pas avec IE, par hasard ? Normal, addEventListener() n'est pas supporté par IE, il faut utiliser attachEvent() à la place.

    D'autre part, c'est une référence de fonction que tu passes en paramètre à addEventListener(), et le préfixe "on" doit être retiré du nom de l'événement, donc la syntaxe serait plutôt :
    Code:
    bpRaymonde.addEventListener('click', raymonde, false);
    Et pour finir, tu ne peux pas passer de paramètre arbitraire à ta fonction de gestion d'événement, il n'y en a qu'un seul et c'est l'event lui-même.

  22. #262
    C'est un UserJs pour Opera.
    Sinon avec cette syntaxe ca fonctionne, maintenant il me reste plus qu'a trouver comment récupérer roger dans la fonction.

    Merci

  23. #263
    Citation Envoyé par GrandFather Voir le message
    Et pour finir, tu ne peux pas passer de paramètre arbitraire à ta fonction de gestion d'événement, il n'y en a qu'un seul et c'est l'event lui-même.
    En Flex tu peux via une petite astuce. Par exemple :
    Code:
    img.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void{
    											var parm1:int = 2;
    											var parm2:int = 6;
    											var parm3:int = 8;
    											var parm4:String = "toto";
    											var parm5:String = "titi";
    											var parm6:int = 0;
    											var parm7:int = 3;
    											nom_de_la_fonction(e,parm1,parm2,parm3,parm4,parm5,parm6,parm7);});
    Cela devrait fonctionner aussi en javascript, non ?

  24. #264
    Citation Envoyé par Grosnours Voir le message
    Cela devrait fonctionner aussi en javascript, non ?
    Oui, absolument, ce principe de fonction « proxy » est tout à fait viable également en Javascript.

    moimadmax >> Un conseil de canard: si tu souhaites un jour rendre ton code cross-browser, utilise un framework Javascript du type jQuery. Tu t'épargneras une agonie longue et douloureuse, crois-moi...

  25. #265
    Yes ca fonctionne, z'etes trop fort les gars. Comme vous vous en doutez je débute en js. Mais je trouve le langage vachement souple, ce qui le rend complexe. Mais on sent le potentiel derrière.

  26. #266


    Flex c'est mieux.

  27. #267
    Apparemment d'après tes post il y a un typage des variable plus d'autres choses surement. Car avant 17:04 je ne connaissait même pas l'existence de Flex. Mais en ce moment c'est le javascript qui a le vent en poupe.

  28. #268
    Citation Envoyé par Grosnours Voir le message
    Flex c'est mieux.
    Je n'argumenterai pas là-dessus, ne connaissant pas Flex et Javascript n'étant pas ma tasse de thé... Mais cette défiance vis à vis de Javascript est principalement due à l'inconsistance de son implémentation selon les browsers (enfin, surtout celle de DOM), parce que sinon le langage en lui-même est extrêmement puissant.

  29. #269
    Raison de plus, Flash se comporte de manière identique quel que soit le browser. semi-

  30. #270
    Enfin, quel que soit le browser supportant un lecteur Flash. Pour l'iPhone par exemple, c'est mort...

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •