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

Caml Discussion :

OCaml, le réseau et les interfaces graphiques


Sujet :

Caml

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut OCaml, le réseau et les interfaces graphiques
    Bonjour, cela fait une petite semaine que j'ai débuté en OCaml. Moi qui vient du C, j'ai assez bien compris son fonctionnement. Maintenant que je maitrise la "console" dirons nous, j'aimerai bien faire ce que je faisais en C, c'est à dire des programmes à interfaces graphiques. En C, j'utilisais la SDL et pour le réseau j'utilisais un header dont j'ai oublié le nom.

    J'aimerai savoir si je peux faire des programmes à interface graphique et du réseau en OCaml avec une lib (comme SDL ou d'autres [merci de m'en proposer], j'ai entendu parler de tcl\tk) et si cela est bien documenté car OCaml ne semble pas très documenté en ce qui concerne les libs externes.

    Merci d'avance

    PS: S'il n'existe pas de documentation pour cela, tant pis, je continuerai à utiliser ocaml pour certains programmes (consoles) et le C pour d'autres programmes.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Bonjour, cela fait une petite semaine que j'ai débuté en OCaml. [...]
    Je doute qu'en une semaine tu ai une bonne compréhension de ce qu'implique la programmation fonctionnelle. À moins que tu n'ai déjà fait de la programmation fonctionnelle, tu dois probablement programmer en ocaml comme tu programmerais en C. Je serais toi j'attendrais un peu pour me lancer ailleurs et j'explorerais plus le paradigme.

    Cependant, pour répondre à ta question, il existe effectivement des bibliothèques qui permettent de faire ce que tu veux en ocaml.
    Une simple recherche sous google renvoie ça en premier résultat avec « network ocaml » et il y en a d'autres.
    http://sourceforge.net/projects/ocnae/
    Plus simplement le module Unix te permettra de faire du réseau.
    Le défi fonctionnelle numéro 3 peut te donner quelque exemple
    http://www.developpez.net/forums/sho...d.php?t=410704
    Pour les interfaces, il y a aussi de quoi.

    Mais encore une fois, tu devrais approfondir l'essence d'ocaml avant d'aller chercher ça.

  3. #3
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Vous avez raison dans la mesure où mes connaissances en OCaml se rapprochent du C, je n'ai pas cherché à comprendre les classes... Tout simplement car pour le moment, je n'en ai pas besoin m'enfin c'est ok, je vais d'abord me concentrer sur ocaml pour disons, autre chose et j'utiliserai le C pour d'autres projets.

    Puis-je utiliser l'ocaml pour certaines actions et le C pour d'autres dans un même projet ? Ca se fait ?

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Vous avez raison dans la mesure où mes connaissances en OCaml se rapprochent du C, je n'ai pas cherché à comprendre les classes...
    En fait je ne pensais pas aux classes, mais à tout ce qu'offre le fonctionnel qui lui est propre.

    Donc prends le temps de comprendre la programmation par flots (map, fold, filter etc.) et l'utilisation des fonctions de haut niveau.

  5. #5
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    OCamlSDL, tu l'avais sans doute déjà trouvé par toi-même:

    http://ocamlsdl.sourceforge.net/

    À ton âge il est difficile de conseiller un quelconque tutoriel car la plupart visent plutôt les étudiants du supérieur. À tort dirait sans doute InOCamlWeTrust, et quand je regarde mon propre tutoriel (qui n'est pas si mauvais mais qui ne s'adresse pas à ta tranche d'âge) je me souviens qu'il m'avait mis en garde dès le début contre le penchant à placer la barre trop haut.

    InOCamlWeTrust si tu nous lis, tu te fais trop rare.

    PS: je voulais faire une suite à mon jeu, en OCaml cette fois, mais je ne suis pas assez motivé, si tu le souhaite le projet est à toi (contacte-moi par message privé)
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  6. #6
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Bonjour, cela fait une petite semaine que j'ai débuté en OCaml. Moi qui vient du C, j'ai assez bien compris son fonctionnement.
    Juste pour faire un test, soit l une liste d'entier, peux tu m'écrire la fonction récupérant les entiers pairs de cette liste ?

    A coté de ça, soyons honnêtes, les interfaces graphiques sous OCaml, c'est pas la panacé.. Mais un binding Qt est en préparation ! Mmmh!!
    Dernière modification par alex_pi ; 30/04/2008 à 01h54. Motif: Une fôte inacceptable, même pour moi !

  7. #7
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Merci pour tout, je vais donc suivre vos conseils et apprendre en profondeur ce langage si super !

    En ce qui concerne la reprise du jeu, je ne pense pas mais merci quand même

    En ce qui concerne le code, je m'y met de suite

    PS: Désolé pour la réponse tardive.

  8. #8
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let i = [| 2 ; 0 ; 20 ; 172 ; 4 ; 29 ; 256 ; 1024 ; 89 ; 2078 ; 64 ; 4096 ; 22 ; 7 ; 1 ; 9029 |] in
    let indice = ref 0 in
        for x = 1 to (Array.length i) do
            print_int (i.(!indice));
            if i.(!indice) mod 2 = 0
            then print_string "pair\n"
            else print_string "impair\n";
            indice := !indice+1;
        done;
    ;;
    Voilà Ca fonctionne, si j'ai pris un peu de temps c'est parce que j'avais écrit ca et je trouvais pas l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    let i = [| 2 ; 0 ; 20 ; 172 ; 4 ; 29 ; 256 ; 1024 ; 89 ; 2078 ; 64 ; 4096 ; 22 ; 7 ; 1 ; 9029 |] in
    let indice = ref 0 in
        for x = 1 to (Array.length i) do
            if i.(!indice) mod 2 = 0
            print_int (i.(!indice));
            then print_string "pair\n"
            else print_string "impair\n";
            indice := !indice+1;
        done;
    ;;

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    D'une part ce n'est pas ce qu'a demandé alex_pi (il a demandé une liste, pas un tableau, et il a demandé de récupérer les entiers pairs dans cette liste, pas de les afficher), d'autre part c'est très lourd, une solution fonctionnelle serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let getEvens xs = let even n = n mod 2 = 0 in List.filter even xs
    Tu peux l'appliquer sur une liste comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getEvens [ 2 ; 0 ; 20 ; 172 ; 4 ; 29 ; 256 ; 1024 ; 89 ; 2078 ; 64 ; 4096 ; 22 ; 7 ; 1 ; 9029 ]
    et tu obtiendras la liste des entiers pairs de la liste d'entrée : [2; 0; 20; 172; 4; 256; 1024; 2078; 64; 4096; 22].

    Tu comprends ce qu'on veut dire par "changement de paradigme" ? Ton code est impératif, écrire de l'impératif en OCaml est un peu mieux qu'en C ou autre langage de bas niveau, mais n'exploite pas vraiment la puissance du langage.

    --
    Jedaï

  10. #10
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Voilà Ca fonctionne,
    Comme l'a dit Jedai, ce n est pas ce que j ai demande, mais en tout cas, ca prouve effectivement que, je suis desole, tu n'as pas dutout effectue la transition du C vers OCaml, tu as juste fait un changement de syntaxe.

    La reponse que j'attendais etait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    let pairs = List.filter (fun n -> n mod 2 = 0)
    Un peu plus court non?

    Bref, tente de te trouver un bon tutoriel/bouquin pour vraiment t'impregner du langage, et surtout, oublie tes reflexes de codeur C !!

  11. #11
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Un conseil : dans un premier temps, essaie de n'utiliser aucun "ref", "for", "while".
    Essaie de comprendre ce qu'est une fonction anonyme (mot clé "fun" ou "function"). Apprends aussi à utiliser les fonctions du module List.

    Normalement, un bon cours Caml devrait commencer par ces aspects.

    Quand tu auras bien compris tout ça, tu pourras utiliser les "ref", les boucles, les objets, et découvrir les bibliothèques graphiques.

  12. #12
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Pour Gtk2 il y a déjà LablGtk avec un tutoriel dedié.

    Maintenant que j'ai installé Puppy Linux ça commence à m'intéresser, quels sont vos retours d'expérience avec LablGtk ?
    Ou bien alors vous êtes tous sur KDE à attendre un binding Qt ?
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 67
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Mais un binding Qt est en préparation ! Mmmh!!
    Tu as un lien à donner ? Très intéressant comme info . J'adore QT vivement que le portage se termine... (gtk et tk j'aime pas trop )

  14. #14
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par funtix Voir le message
    Tu as un lien à donner ? Très intéressant comme info . J'adore QT vivement que le portage se termine...
    http://osp.janestcapital.com/wordpress/


    Citation Envoyé par funtix Voir le message
    (gtk et tk j'aime pas trop )
    perso, j'ai toujours pu faire ce que je souhaitais avec Gtk, donc je n'ai jamais pris la peine de passer à Qt
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

Discussions similaires

  1. Livre sur les interfaces graphiques en java.
    Par zulot dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 22/11/2007, 01h10
  2. Designer pour les interfaces graphiques sous eclipse
    Par anas.eh dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/10/2007, 10h30
  3. Les tutoriels en français sur les Interfaces Graphiques
    Par Jerome Briot dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 04/09/2007, 21h44
  4. Quel outil pour créer les interfaces graphique en Java ?
    Par youp_db dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 11/01/2006, 07h30

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