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

Discussion :

Compréhension de code


Sujet :

Julia

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2014
    Messages : 44
    Points : 118
    Points
    118
    Par défaut Compréhension de code
    Bonjour,

    Je viens de débuter en Julia 1.1.0 sous Manjaro en suivant l'excellent tutoriel Intro to Julia fourni par julialang.org.

    Dans le notebook 10.1 Multiple Dispatch sous jupyter, non couvert dans la vidéo, on exploite les chiffres Romains.

    Le code suivant :

    Code Julia : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct Roman
          n::Int
    end
     
    Base.show(io::IO, r::Roman) = print(io, 'i', i + (r.n - 1) % 10) # nice display;

    Ensuite on exécute :

    Et il s'affiche :

    iv
    Comment est-ce possible? D'où sort la lettre v?

    En refaisant la même manipulation en julia console, j'obtiens :
    l
    Ce qui est plus logique car trois lettres après i, on a bien l.

    Merci d'avance.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 24 684
    Points : 166 217
    Points
    166 217
    Par défaut


    Déjà, ton code ne fonctionne pas : la variable i n'est jamais définie dans ce que tu montres. Le loup se cache peut-être là-derrière ?

    (Sinon, pour les nombres en chiffres romains, https://github.com/anthonyclays/RomanNumerals.jl. Jeter un petit coup d'œil au code t'apprendra d'ailleurs quelques trucs, par exemple côté métaprogrammation.)
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2014
    Messages : 44
    Points : 118
    Points
    118
    Par défaut Désolé pour le retard
    Bonjour,

    Je suis désolé de répondre aussi tard, problème réseau.

    Effectivement, j'ai copié à l'arrache le code officiel du cours et c'est ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct Roman
          n::Int
    end
     
    Base.show(io::IO, r::Roman) = print(io, 'i' + (r.n - 1) % 10) # nice display;
     
    Roman(4)
    Mais si ce code renvoie bien 'iv' sous Jupyter/Julia 1.0.1, il me renvoie la lettre 'l' en Julia REPL, ce qui paraît plus logique.

    J'ai entré ]status et le package de RomanNumerals n'apparaît pas, ni sous Jupyter, ni sous REPL. Comment fait alors ce bout de code pour bien affiché 'iv' et pas 'l' sous Jupyter?

    Je te remercie pour le lien qui est celui du pack proposé par Julia quand on va farfouiller dans ses répertoires.

    J'essaie de comprendre.

    Bonne journée

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 24 684
    Points : 166 217
    Points
    166 217
    Par défaut
    Franchement, je ne comprends pas la réaction de Jupyter… Normalement, ça devrait juste être le REPL derrière, mais on dirait que non. Avec + et un caractère, tu ne peux aller voir que plus loin en ASCII (ou autre encodage) ; pour une concaténation, ça aurait été * (et il aurait fallu transtyper, parce qu'on ne peut pas concaténer un caractère et un entier…).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2014
    Messages : 44
    Points : 118
    Points
    118
    Par défaut Trouvé!
    Rebonjour,

    Ce n'est pas Jupyter le coupable.

    En fait le code n'utilise pas le caractère i normal mais le caractère i du Roman Universal en Unicode, qui commence en 0x2170, de ce fait lorsque que l'on va ajouter un nombre (3 dans notre cas), on va chercher le 4ème caractère de la série Roman Universal Unicode et c'est bien : iv.

    J'ai bien relu les commentaires : qui sont #nice display; 'i' is a Unicode Roman Numeral

    J'avais cru que c'était pour faire joli et non... je vais chercher le fouet et du sel...

    Merci pour ton aide.

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

Discussions similaires

  1. compréhension de code en asp
    Par bidule123456 dans le forum ASP
    Réponses: 1
    Dernier message: 21/08/2007, 11h12
  2. compréhension de code (passage à une autre page)
    Par kokokaine dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2007, 11h02
  3. Réponses: 3
    Dernier message: 12/01/2007, 09h42
  4. [VB-Access]recset! Pb de compréhension de code
    Par sk8bcn dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/12/2006, 15h26
  5. Compréhension du code
    Par Ivanelis dans le forum Assembleur
    Réponses: 3
    Dernier message: 12/06/2006, 12h08

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