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

Recherche:

Type: Messages; Utilisateur: gasche

Recherche: Recherche effectuée en 0,02 secondes.

  1. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : C'est moins spécialisé mais j'avais essayé, pour...

    C'est moins spécialisé mais j'avais essayé, pour un petit interprète de bytecode, d'utiliser un Map.Make(Int) comme environnement, et malgré la meilleure complexité théorique c'était sensiblement...
  2. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Un petit code d'exemple pour montrer comment...

    Un petit code d'exemple pour montrer comment faire un "make_matrix" généralisé en dimension arbitraire à la sauce "functional unparsing" (Olivier Danvy).


    let make_matrix x y f =
    Array.init x...
  3. Votes reçus
    +1 -0
    Réponses
    157
    Affichages
    118 633

    Important : Tu pourrais t'inspirer des fonctions suivantes...

    Tu pourrais t'inspirer des fonctions suivantes (qui me semble être comme rectangle, mais sans bornes) :


    let elements_x, elements_y =
    let rec elements
    : 'a 'b . ('a -> 'b -> 'c) -> ('b...
  4. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : SpiceGuid > on parle de toi sur StackOverflow...

    SpiceGuid > on parle de toi sur StackOverflow ! :-'

    J'ai mis en ligne une version un peu nettoyée de ton code :
    http://hpaste.org/45805/bimap_as_a_nonregular_recursi

    J'ai retiré les...
  5. Votes reçus
    +1 -0
    Réponses
    157
    Affichages
    118 633

    Important : C'est une structure diabolique. C'est dingue ce...

    C'est une structure diabolique. C'est dingue ce qu'on peut faire avec les types non-réguliers.

    Pour ton problème de typage, c'est lié à l'inférence des fonctions récursives. Il faut forcer la...
  6. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Comme le précise le commentaire, on considère...

    Comme le précise le commentaire, on considère comme réels les séquences *infinies* de booléens. C'est ce que fait la fonction "randoms" (que personne n'est censée connaître et que d'ailleurs j'avais...
  7. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Page code source, mettez vos sources ici !

    import Data.List (mapAccumL, sortBy)
    import System.Random (RandomGen, split, randoms)
    import Data.Ord (Ordering)
    import Data.Function (on)

    -- compare two real numbers as infinite sequences of...
  8. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Disclaimer : aucun des codes de ce post n'a été...

    Disclaimer : aucun des codes de ce post n'a été testé (ni même compilé).


    Au passage, je suis allé voir et j'ai le sentiment que ton fold sur les arbres n-aires n'est pas "le fold canonique". Tu...
  9. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Bon, c'est mort. On regarde un code, on voit un...

    Bon, c'est mort. On regarde un code, on voit un truc à améliorer, on essaie. Puis un autre. Puis un autre. Puis après ça ressemble plus du tout, et on a perdu la trace de l'ordre des modifications....
  10. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : J'ai l'impression que le code actuel de...

    J'ai l'impression que le code actuel de l'opération set est faux :


    let set v i x =
    let rec grow i = Node (*[...]*)
    and tree i node =
    match node with
    | Leaf ->
    ...
  11. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : - "or" c'est moche (parce que "and" ne marche...

    - "or" c'est moche (parce que "and" ne marche pas, et les priorités sont louches), "||" for the win.

    - (..+1) (...-1), en fait il n'y a qu'un index qui varie (l' "éloignement par rapport aux...
  12. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Pourrais-tu expliciter ce qui ne marche pas ? Ça...

    Pourrais-tu expliciter ce qui ne marche pas ? Ça a sûrement à voir avec la conservation du polymorphisme, mais de loin ce n'est pas évident de voir le problème.

    En tout cas, à l'utilisation ils...
  13. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Si, il est utilisé par get et set, en tant...

    Si, il est utilisé par get et set, en tant qu'argument initial à leur fonction "helper' (puique c'est le node courant).
  14. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Mais l'introspection ne résout pas le problème de...

    Mais l'introspection ne résout pas le problème de savoir si les méthodes sont bien les mêmes sur les deux objets, si ?
  15. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Sauf que les fonctions de comparaison ne...

    Sauf que les fonctions de comparaison ne remplacent pas sup et inf.

    Par exemple, dans le cas d'un type produit, tu as sup (2, 5) (3, 4) = (3, 5).
    Comment tu fais ça avec tes fonctions de...
  16. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Ça n'a rien d'un hack. Tu représentes ton type...

    Ça n'a rien d'un hack. Tu représentes ton type comme 'a + 'a, et moi comme 2 * 'a.

    En plus, ma version est mieux. Dans ton cas tu dupliques de l'information (tu précises deux fois que le contenu...
  17. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Euh, tu as probablement lu l'intégralité de la...

    Euh, tu as probablement lu l'intégralité de la discussion qui me concerne en tout cas, puisque je n'ai posté que deux messages sur ce thread.


    type 'a bound = { value : 'a; eq : 'a bound -> bool;...
  18. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Où est-ce que tu risques l'invalid_argument ? ...

    Où est-ce que tu risques l'invalid_argument ?

    Sinon, il reste un problème avec le code tel quel, c'est qu'il est possible de mélanger dans un intervalle des bornes avec des fonctions de...
  19. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : J'ai amélioré le code pour mettre l'accent sur la...

    J'ai amélioré le code pour mettre l'accent sur la modularité plutôt que sur les types inductifs.

    On commence avec un code modulaire simple, semblable au code de gorgonite (mais en moins laid) :
    ...
  20. Votes reçus
    +0 -0
    Réponses
    157
    Affichages
    118 633

    Important : Voici une ré-écriture du code de dérivation en...

    Voici une ré-écriture du code de dérivation en utilisant des facilités syntaxiques. Je n'ai (théoriquement) absolument rien changé au comportement du code.


    let (+) a b = Add(a,b)
    and ( ^ ) a b...
Affichage des résultats 1 à 20 sur 20