Posté le 02/01/2020 12:18
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 116 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 02/01/2020 12:36 | #
Yup, totalement possible. Il suffit de remplacer la boucle par des fonctions récursives.
Edit: Also comme on ne peut pas mettre de point-virgule dans une lambda comme ça j'ai juste fait une fonction différente par "étape" de la boucle et je les appelle les unes à la suite des autres.
Citer : Posté le 02/01/2020 12:42 | #
Oh bien pensé
Je n'avais même pas pensé qu'il était possible d'utiliser les lambdas de cette façon.
Citer : Posté le 02/01/2020 12:42 | #
Programmation fonctionnelle FTW
Citer : Posté le 02/01/2020 12:44 | #
Vraiment très bien pensé, lephe t'avais déjà planché sur le problème avant ou alors tu sorts ça de tête sans pression ?
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 02/01/2020 12:51 | #
Non je ne prémédite pas ce genre de programmes très spécifiques non plus
Tiens pendant que j'y suis j'ai golfé un peu le truc.
192168 octetsCiter : Posté le 02/01/2020 12:53 | #
C'est encore du python ça ?
En tout cas ça ressemble plus du tout à ce qu'on nous aprrend bien sagement x)
Citer : Posté le 02/01/2020 13:03 | #
Tu m'as donné d'autres idées Massena. Du coup j'ai mis à jour mon post avec plus court (168 octets au lieu de 192, soit plus court que l'original sur deux lignes). Maintenant je retourne bosser
Et du reste oui c'est encore de Python, mais comme tout langage on peut pousser le bouchon pour raccourcir le code x)
Citer : Posté le 02/01/2020 13:38 | #
Et du reste oui c'est encore de Python, mais comme tout langage on peut pousser le bouchon pour raccourcir le code x)
Vietnamese warbrainfuck javascript flasbackCiter : Posté le 05/01/2020 14:06 | #
J'ai trouvé une solution en deux lignes, mais 160 octets :
while e!=r:e=int(input("Enter your guess:\n> "));print(["-\n", "+\n", "Congratz you found it!\n"][(e<=r)+(e==r)])
Citer : Posté le 05/01/2020 14:13 | #
Shadow : e=int() est équivalent à e=0
Citer : Posté le 05/01/2020 14:17 | #
Oui c'pas faux Du coup je suis à 156 octets…
Ajouté le 05/01/2020 à 14:24 :
Ah… Rectification, j'ai virer tous les espaces dans les listes, je suis à 154 octets avec ce code :
while e!=r:e=int(input("Enter your guess:\n> "));print(["-\n","+\n","Congratz you found it!\n"][(e<=r)+(e==r)])
Citer : Posté le 05/01/2020 14:47 | #
Optimisation de la solution de Shadow vers 152 octets
while e-r:e=int(input("Enter your guess:\n> "));print("\n"+("-","+","Congratz you found it!")[(e<=r)+(e==r)])
Citer : Posté le 05/01/2020 14:48 | #
Bien joué
Citer : Posté le 05/01/2020 15:23 | #
Sinon on peut virer les \n, print en rajoute automatiquement
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 05/01/2020 15:29 | #
Sinon on peut virer les \n, print en rajoute automatiquement
C'est pour le double saut à la ligne, lisibilité.
Jusqu'ici tous les programmes fonctionnent à l’identique de mon programme d'origine, qui faisait un saut à la ligne après chaque essai.
Citer : Posté le 07/01/2020 18:38 | #
Je bloque sur un truc…
J'ai compris le coup de la liste avec les booléen ^^' mais j'ai pas compris comment faire un lambda récursif… et j'aimerai bien comprendre…
Citer : Posté le 07/01/2020 18:43 | #
Les lambda sont récursifs tous seuls. Si tu écris lambda: g(), tu obtiens une fonction qui appelle g, peu importe ce que c'est.
Dans ce cas, si tu choisis que g est ce lambda avec g = lambda: g(), tu obtiens une fonction qui est la version récursive d'une boucle infinie.
Dans mon code c'est pareil. Ma fonction lambda appelle f, mais ne cherche pas à savoir ce que c'est avant que je ne l'exécute. Je peux donc créer la fonction sans qu'on me pose de questions, puis l'assigner à la variable f, et hop la boucle est formée.
Citer : Posté le 07/01/2020 19:19 | #
Malin la technique de la fonction récursive, je garde ça dans un coin de ma tête (j'ai jamais fait de programmation fonctionnelle).
Citer : Posté le 07/01/2020 20:08 | #
Je ne peux que suggérer d'essayer la prog fonctionnelle de temps en temps, car cette façon de penser a bien des avantages !
Citer : Posté le 08/01/2020 18:10 | #
Ok ! Merci ! Je connaissais pas du tout la prog récursive, mais depuis ce topic, j'ai fait une lib d'arithmétique avec des fonctions diverses, dont plusieurs sur une seule ligne : is_prime, fact… Ça m'a fait gagner presque 400 octets par rapport à mon code de base !!