Se connecter / S'enregistrer
Votre question

[Scheme] Port / Read

Tags :
  • Input
  • Programmation
Dernière réponse : dans Programmation
11 Mai 2010 12:06:46

Bonjour !!

Je souhaiterais modifier l'input de la fonction (read) en Scheme.

J'aimerais que l'input se fasse dans une boite de dialogue toute bête et non dans la console.

Comment créer ce port ?

Je pense que la fonction est :

  1. (make-input-port
  2. name
  3. read-in
  4. peek
  5. close
  6. [ get-progress-evt
  7. commit
  8. get-location
  9. count-lines!
  10. init-position
  11. buffer-mode
  12. ])


et le manuel est ici :

http://docs.plt-scheme.org/reference/customport.html

Ce n'est pas faute d'avoir cherché, mais impossible de faire fonctionner mon :

  1. (read (make-input-port ..............))

Autres pages sur : scheme port read

11 Mai 2010 12:32:07

Salut,

C'est quoi ce langage ... :??: 

Bon, si j'ai bien saisie comment ils l'utilisent dans les exemples (en bas) :
  1. (define VARIABLE_ACCES_AU_PORT_CUSTOM
  2. (make-input-port NOM_DU_PORT
  3. ...
  4.  
  5.  
  6. (read-char VARIABLE_ACCES_AU_PORT_CUSTOM)


Mais à part ça ... Missa pas pouvoir aider tissa.

Il est étrange ce langage ... Sers à quoi ? (avantages / inconvénients / ...)
m
0
l
11 Mai 2010 14:41:07

Coucou RedSux et merci de ton intérêt :) 

Le langage Scheme est un langage fonctionnel.
C'est le descendant direct de Lisp.

C'est un langage assez simple à écrire mais plus compliqué à réfléchir.

Toutes les instructions sont comprises entre parenthèses, le premier "mot" de la parenthèse étant l'appel de la fonction, le reste les arguments.

Par exemple :

(+ 1 2) sera 1 + 2
(+ 1 2 3 4) sera 1 + 2 + 3 + 4
(+ (/ 1 3) (- 1 2)) sera 1/3 + (1-2)

IL fonctionne sur la récursivité :

La fonction factorielle s'écrit :
  1. (define (factorielle n)
  2. (if (zero? n)
  3. 1
  4. (* n (factorielle (- n 1)))
  5. )
  6. )


(en sachant que le le if est légèrement différent du C. La première ligne qui le suit, c'est SI la condition est vraie, sinon on va a la 2e. Donc tout ce qui n'est pas vrai est faux.)

Si ce langage t'interesse (j'en doute mais bon ^^), il est très facile de se lancer dedans en telechargant DrScheme qui est un Eclipse/NetBeans-like, en 2 fois plus simple :) 

J'espère t'avoir un peu éclairé :) 
m
0
l
11 Mai 2010 14:51:51

Merci pour ces explications apaachee, c'est plus clair que Wikipedia ;) 

J'ai déjà fais un peu de Lisp, il a longtemps, et c'était pas un truc de fou (juste une petit TP de cours d'info).

Mais ça peut être intéressant, tout dépend de l'utilisation qu'on peut en faire. J'avoue avoir du mal a y trouver un intérêt pour l'instant, comme Lisp... Les langages impératifs ne sont pas ma tasse de thé dirons nous :D 

Mais bon, j'espère que t'arriveras à résoudre ton petit problème.
m
0
l
11 Mai 2010 15:42:32

Merci RedSux, c'est bien gentil :) 

Pour tout ce qui est de l'ordre de la récursivité, c'est plus simple de coder en Scheme, du genre carré de Pythagore ou autres...
m
0
l
11 Mai 2010 23:15:00

Coucou, j'ai donc trouvé la solution en faisant un :

(read-from-string (get-text-from-user "ici" "la"))

:) 
m
0
l
12 Mai 2010 00:52:02

J'aurais pas servi à grand chose, mais au moins tu as une solution ^^
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS