Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1501 Le 20/11/2010, à 14:46

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

helly a écrit :

Bon, allé jvais essayer de voir un peu la prog fonctionnelle.
Tu apprends le haskell déjà non ?
T'as un tuto/livre de référence ?

Ouais, moi j'ai choisi le Haskell.

En français il n'y a rien de bien convaincant à part ça (mais c'est vite limité et je crois que la version anglaise a un chapitre de plus).

En ce moment je lis celui-ci, je le trouve bien fait et assez pédagogique. Puis je compte lire celui-là plus tard (qui est la « référence »).

Avec une autre approche, il y a aussi lui (la version anglaise est peut-être plus à jour) dont j'ai beaucoup entendu parler mais apparemment il vaut mieux avoir déjà fait de la programmation fonctionnelle.
Sinon il y a aussi un tuto sur le SdZ mais je n'ai pas vraiment accroché.

Je te préviens, c'est très particulier donc tu risques de ne pas aimer au début.
Mais si tu as des questions je ferais ce que je peux pour y répondre ^^.

Dernière modification par grim7reaper (Le 20/11/2010, à 14:49)

Hors ligne

#1502 Le 20/11/2010, à 14:48

helly

Re : /* Topic des codeurs couche-tard [2] */

☺/


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1503 Le 20/11/2010, à 16:19

Pylades

Re : /* Topic des codeurs couche-tard [2] */

Hey, quand on utilise ls en récursif, n'y a-t-il pas moyen de récupérer le chemin vers les fichiers, plutôt qu'un classement par répertoire ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1504 Le 20/11/2010, à 16:32

Hors ligne

#1505 Le 20/11/2010, à 16:43

Pylades

Re : /* Topic des codeurs couche-tard [2] */

\o/


Merci beaucoup !


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1506 Le 20/11/2010, à 16:46

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

@Pylade : tu as remis les scores à jour après le fail du compteur ?

Hors ligne

#1507 Le 20/11/2010, à 17:07

compte supprimé

Re : /* Topic des codeurs couche-tard [2] */

Âmes sensibles, s'abstenir.
Merci pour le coup de main helly tongue

#coding: utf-8

# Author  - Lagierl
# License - GPL v3

class Interpreter:
    def __init__(self):
        self.code = ''
        self.data = [int(_) for _ in '0' * 30000]
        self.ptr = 0
        self.ptr_code = 0

    def execute(self, code):
        self.code = code

        while True:
            #print '[DEBUG|MAIN] self.data, self.ptr, self.ptr_code = %s %i %i' \
            #    % (self.data[:10], self.ptr, self.ptr_code)

            if self.ptr_code >= len(self.code):
                break
            char = self.code[self.ptr_code]

            if char == '>':
                self.increase_ptr()
            elif char == '<':
                self.decrease_ptr()
            elif char == '+':
                self.increase_cel()
            elif char == '-':
                self.decrease_cel()
            elif char == '.':
                self.print_cel()
            elif char == ',':
                self.scan_cel()
            elif char == '[':
                self.begin_loop()
            elif char == ']':
                self.end_loop()
            self.ptr_code += 1

    def increase_ptr(self):
        if self.ptr < 30000:
            self.ptr += 1

    def decrease_ptr(self):
        if self.ptr > 0:
            self.ptr -= 1

    def increase_cel(self):
        if self.data[self.ptr] < 255:
            self.data[self.ptr] += 1

    def decrease_cel(self):
        if self.data[self.ptr] > 0:
            self.data[self.ptr] -= 1

    def print_cel(self):
        if self.data[self.ptr] == 0:
            print '0'
        else:
            print chr(self.data[self.ptr])

    def scan_cel(self):
        char = raw_input('... ')

        if char == '':
            self.data[self.ptr] = 0
            return

        self.data[self.ptr] = ord(char)

    def begin_loop(self):
        if self.data[self.ptr] != 0:
            return

        level = 0

        while level > -1:
            #print '[DEBUG|B_LOOP] level, self.code[self.ptr_code], self.ptr_code = %i %s %i' \
            #    % (level, self.code[self.ptr_code], self.ptr_code)
            
            self.ptr_code += 1
            
            if self.code[self.ptr_code] == '[':
                level += 1
            elif self.code[self.ptr_code] == ']':
                level -= 1

    def end_loop(self):
        level = 0

        while level > -1:
            #print '[DEBUG|E_LOOP] level, self.code[self.ptr_code], self.ptr_code = %i %s %i' \
            #    % (level, self.code[self.ptr_code], self.ptr_code)

            self.ptr_code -= 1
            
            if self.code[self.ptr_code] == '[':
                level -= 1
            elif self.code[self.ptr_code] == ']':
                level += 1
        self.ptr_code -= 1

if __name__ == '__main__':
    code = raw_input('>>> ')
    Interpreter().execute(code)

Dernière modification par Lagierl (Le 20/11/2010, à 17:09)

#1508 Le 20/11/2010, à 17:24

helly

Re : /* Topic des codeurs couche-tard [2] */

Ha, faut le lancer puis fournir les instructions ? hmm


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1509 Le 20/11/2010, à 17:28

helly

Re : /* Topic des codeurs couche-tard [2] */

helly@Archlent:~$ python2 lagierl.py 
>>> ,>,,>++++++[#-<--------<-------->>]<<[>[->+>+<<]>[-<<-[>]>>>[<[>>>-<<<[-]]>>]<<]>>>+<<[-<<+>>]<<<]>[-]>>>>[-<<<<<+>>>>>]<<<<++++++[-<++++++++>]<.
... 8/2
Traceback (most recent call last):
  File "lagierl.py", line 107, in <module>
    Interpreter().execute(code)
  File "lagierl.py", line 35, in execute
    self.scan_cel()
  File "lagierl.py", line 71, in scan_cel
    self.data[self.ptr] = ord(char)
TypeError: ord() expected a character, but string of length 3 found

Erreur du même genre pour le tri_alpha…

Dernière modification par helly (Le 20/11/2010, à 17:31)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1510 Le 20/11/2010, à 17:41

helly

Re : /* Topic des codeurs couche-tard [2] */

Ouep, bhé Haskell, pas trop vite hein ! tongue
Côté tuto, j'ai aussi trouvé ça.
Regardé vite fait, ça a l'air pas mal non plus.

Dernière modification par helly (Le 20/11/2010, à 17:51)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1511 Le 20/11/2010, à 17:55

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

helly a écrit :

Ouep, bhé Haskell, pas trop vite hein ! tongue
Côté tuto, j'ai aussi trouvé ça.
Regardé vite fait, ça a l'air pas mal non plus.

C'est le même que celui-ci que j'ai donné dans mon autre post. Il me semble qu'il s'adresse à des gens ayant dèjà de l'expérience dans la prog fonctionnelle mais tu peux essayer si tu veux…

@lagierl : on fait comment pour lui faire exécuter un script ?

Dernière modification par grim7reaper (Le 20/11/2010, à 17:58)

Hors ligne

#1512 Le 20/11/2010, à 18:04

helly

Re : /* Topic des codeurs couche-tard [2] */

@grim :
Tu le lances

 python le_script.py

puis tu tapes manuellement la suite des instructions…
C'est pas bien Lagierl !
Il faut qu'il lise le fichier instruction donné en arguments !

Dernière modification par helly (Le 20/11/2010, à 18:05)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1513 Le 20/11/2010, à 18:05

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

@helly : oui le script je sais le faire, c'est pour un script bf que je demandais smile

Hors ligne

#1514 Le 20/11/2010, à 18:08

helly

Re : /* Topic des codeurs couche-tard [2] */

C'est quoi je dis !
Exemple :

helly@Archlent:~$ python2 lagierl.py 
>>> ++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.
H
e
i
l
 
o
l
 
!
helly@Archlent:~$ 

C'est pas encore ça hmm.
Et quand il nous demande d'entrer des touches, c'est la merde hmm


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1515 Le 20/11/2010, à 20:27

Pylades

Re : /* Topic des codeurs couche-tard [2] */

grim7reaper a écrit :

@Pylade : tu as remis les scores à jour après le fail du compteur ?

Comment oses-tu en douter ? yikes


@Lagierl : tu dois tendre vers ça :

$ <<< '++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.' bf
Heil ol !

tongue


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1516 Le 20/11/2010, à 20:39

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

Je ne doutes de rien, je demandais juste confirmation (flemme de vérifier si tu l'avais fait ^^)

Hors ligne

#1517 Le 20/11/2010, à 20:43

Кຼزດ

Re : /* Topic des codeurs couche-tard [2] */

% python2 lag.py
>>> ++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.
Heil ol !

:P
Au final, suffit de remplacer les print par des sys.stdout.write()


dou

Hors ligne

#1518 Le 20/11/2010, à 21:05

Pylades

Re : /* Topic des codeurs couche-tard [2] */

Ouais, et de préférence il faut faire from sys import stdout, vu que seul stdout nous intéresse.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1519 Le 20/11/2010, à 21:12

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

De préférence il faut qu'il lise un fichier en entrée parce que se palucher les instructions c'est moyen…

Hors ligne

#1520 Le 20/11/2010, à 21:12

Кຼزດ

Re : /* Topic des codeurs couche-tard [2] */

Pylade a écrit :

Ouais, et de préférence il faut faire from sys import stdout, vu que seul stdout nous intéresse.

tu peux t'amuser à écrire sur stderr pour le plaisir, aussi tongue


dou

Hors ligne

#1521 Le 20/11/2010, à 21:15

Pylades

Re : /* Topic des codeurs couche-tard [2] */

grim7reaper a écrit :

De préférence il faut qu'il lise un fichier en entrée parce que se palucher les instructions c'est moyen…

D'où ma remarque du post de la bataille de Marignan (:P).


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1522 Le 20/11/2010, à 21:19

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

Dans ta remarque, le code est encore entré à la main dans l'interpréteur ou alors j'ai mal compris ta ligne…

Dernière modification par grim7reaper (Le 20/11/2010, à 21:21)

Hors ligne

#1523 Le 20/11/2010, à 21:22

compte supprimé

Re : /* Topic des codeurs couche-tard [2] */

Plop, j'ai revu l'affichage et je bosse sur la lecture depuis un fichier.

#1524 Le 20/11/2010, à 21:36

grim7reaper

Re : /* Topic des codeurs couche-tard [2] */

Cool wink.

Pylade, tu pourrais remettre dispo le code de ton interpréteur (tu l'avais mis juste une journée chez Neros donc on peu plus le récupérer maintenant) ?

Hors ligne

#1525 Le 20/11/2010, à 22:02

tshirtman

Re : /* Topic des codeurs couche-tard [2] */

gaby@caterpillar [~]vim bf_largiel.py
gaby@caterpillar [~]cat "++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.
> "^C
gaby@caterpillar [~]cat > /tmp/heil_oh.bf
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.
gaby@caterpillar [~]python bf_largiel.py < /tmp/heil_oh.bf 
>>> H e i l   o l   !
gaby@caterpillar [~]

j'avais juste ajouté de "," après les print, mais en effet, ça laisse un espace, contrairement à écrire sur stdout.

vous êtes des noobs quand même de pas connaitre les indirections tongue

Dernière modification par tshirtman (Le 20/11/2010, à 22:03)

Hors ligne