#1501 Le 20/11/2010, à 14:46
- grim7reaper
Re : /* Topic des codeurs couche-tard [2] */
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
- tshirtman
Re : /* Topic des codeurs couche-tard [2] */
@pylade: je pense que tu veux faire un "find ." plutot
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
#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 ?
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 !
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] */
Ouep, bhé Haskell, pas trop vite hein !
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
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 .
Et quand il nous demande d'entrer des touches, c'est la merde
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] */
@Pylade : tu as remis les scores à jour après le fail du compteur ?
Comment oses-tu en douter ?
@Lagierl : tu dois tendre vers ça :
$ <<< '++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.++++.+++.>++.<+++.---.>.+.' bf
Heil ol !
“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] */
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
dou
Hors ligne
#1521 Le 20/11/2010, à 21:15
- Pylades
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…
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 .
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
Dernière modification par tshirtman (Le 20/11/2010, à 22:03)
Hors ligne