Alain Busser
9:15 AM
retour
à sophus: tu proposes de faire de "de" une lambda-fonction alors que
pour moi c'était une chaîne de caractères. Quel est l'avantage de la
lambda-fonction sur la chaîne?9:22 AM
parce que le "de" est un mot de confort et que c une ruse pour ne pas avoir de virgule entre de, 310:17 AM
ah OK sympa, j'adopte (au risque de s'emmêler entre les virgules et les espaces10:29 AM
Du
coup ta surcharge de l'objet "Number" me donne envie de tester la même
chose avec les booléens pour faire quand même des boucles "tantQue"...10:30 AM
il
faudrait a la fin faire passer le test de turing a la machine aux
intervenants de l'irem en leurs aisant lire la solution rédigée sans les
points et les virgules rt avec des espaces entre tant et que :) avec ça
dans alcoffethmique en mode débutant, algobox se trouvera relegué à
l'etat d'antiquité.10:54 AM
J'ai pensé a une interface du style de
nitrous.io (que j'utilises maintenant pour develloper c'est trop cool !) qu'en penses tu ?
10:55 AMaussi
j'aurais voulu dans l'année trouver un temps pour te montrer ruby on
rails, tu ferais des merveilles avec. Enfin je crois qu'on a à faire a
un équivalent tout javascript (donc coffee) qui s'appelle meteor.js et
qui va etre une killer app soon !10:57 AM
je vais tenter (tout en buvant un grog) des trucs comme ceci:10:59 AM
Boolean::toString = if this then "Vrai" else "Faux"11:00 AM
et des équivalents pour l'affichage scientifique des nombres11:00 AM
jette un coup d'oeil a ça je crois que ca va nous servir11:02 AM
pour 8.fois function ou 8.fois Integer11:02 AM
je crois que tu as trouvé un moyen d'alléger le code de Sophus11:04 AM
ceci ne marche pas11:04 AM
Boolean::toString = -> if this then "vrai" else "faux"
affiche 2+2 is 411:04 AM
ou est le reste du code ?11:05 AM
juste ça, mais dans alcoffeethmique11:06 AM
attends11:06 AM
Boolean::toString = () => if this then "vrai" else "faux"
affiche (2+2 is 4).toString()11:12 AM
Je reviens sur la baleine, je veux pas faire de pub pour three.js mais11:15 AM
lé bon, c'est factorisable ça (dans le source d'alcoffeethmique)11:15 AM
et blender...11:15 AM
je regarde11:16 AM
a la racine ?11:16 AM
oui11:16 AM
ah ça c'est marrant, si je fais11:19 AM
Number::toString = ()=> this.toString().replace(".",",")
b = 7/5
affiche b.toString()11:20 AM
j'ai [object Window] au lieu des 1,4 attendus...11:20 AM
compris: this, c'est pas ça :-D11:28 AM
this se refère toujours à la fenêtre, pas à la variable courante11:28 AM
il faut plutot faire11:31 AM
Number::toString = () ->
"#{this}".replace(".",",")
b = (7/5).toString()
affiche b11:31 AM
la fleche grasse change l'assignement du this a l'objet courant qui ne correspond plus a la valeur Number11:32 AM
c'est la nuance entre -> et =>11:32 AM
même avec la flèche grasse j'ai des erreurs11:32 AM
Boolean::toString = ()-> if this is true then "c'est vrai" else "c'est pas vrai"
b = (2+2 is 4)
affiche b.toString()11:33 AM
oui il ne l'a faut pas dans ce cas la11:33 AM
me donne "c'est pas vrai", ce qui me remplit de doute...11:33 AM
oups11:33 AM
Boolean::toString = ()=> if this is true then "c'est vrai" else "c'est pas vrai"
b = (2+2 is 4)
affiche b.toString()11:33 AM
lol11:35 AM
essaye ça alors11:35 AM
Boolean::toString = ()-> if this then "c'est vrai" else "c'est pas vrai"
b = 2+2 is 4
affiche b.toString()11:35 AM
this is true is not true ! :D:D11:35 AM
donne
"c'est vrai" mais si je remplace le 4 par un 5 j'ai la même réponse,
donc 2+2 serait égal à 5? on m'aurait menti à l'insu de mon plein gré?11:36 AM
haha !!!11:36 AM
j'ai dit n'importe quoi !11:40 AM
je
commence à comprendre pourquoi Sophus ne marche pas bien: Les booléens
passent mal les conversions. çui là non plus marche pas:11:52 AM
Boolean::toString = ()->
entier = if (this is true) then 1 else 0
"#{this} -> #{["faux","vrai"][entier]}"
b = 2+2 is 4
affiche b.toString()11:52 AM
mystere !11:53 AM
tient j'ai mis la main sur quelque chose :11:53 AM
Boolean::toString = ->
this
b = 2+2 is 5
affiche b.toString()
Boolean::toString = ->
if this
"good"
else
"bad"
b = 2+2 is 5
affiche b.toString()11:53 AM
est-ce
que this reste le même this à chaque étape? En tout cas en enlevant les
parenthèses on voit le code compilé et il a l'air correct...11:55 AM
ayé !12:00 PM
Boolean::toString = ->
if this.valueOf() then "c'est vrai !" else "c'est faux !"
b = 2+2 is 4
affiche b.toString()
b = 2+2 is 5
affiche b.toString()12:00 PM
la commande magique :12:00 PM
affiche typeof this12:00 PM
en fait this designe l'objet Booléan dont la valeur est accessible via la methode valueOf12:02 PM
ah oui là je peux surcharger toString sans utiliser toString!12:02 PM
et oui on surcharge la méthode originale overridden !12:03 PM
même pas besoin:12:03 PM
x=7/6
affiche x.toLocaleString()12:03 PM
et si on fait affiche "{b}" maintenant ?12:03 PM
"#{b}"12:04 PM
on conserve la methode originale !12:05 PM
avec "#{b.toString()}" l'affichage est correct12:05 PM
peut-être plus prudent de surcharger toLocaleString plutôt que toString12:05 PM
carrement on dirait meme que le nom est approprié c'est une méthode existante !?12:06 PM
pour les flottants ça met les espaces des milliers12:07 PM
excellent !12:07 PM
et la virgule12:07 PM
tout ca pour rien ! non c t tres instructif12:08 PM
aTable = new Date()
affiche aTable.toLocaleString()12:08 PM
facile: Je rajoute toLocaleString dans les affichages de alcoffeethmique et tout est en Français!12:09 PM
et ça a l'air récursif12:10 PM
de retour après le repas, je vais voir si sophus bénéficie du valueOf pour les tests et boucles12:49 PM
problème avec le "de" comme fonction: ça empêche les dentelles comme "tiers" ou "pourcents"; je laisse donc l'ancienne version1:25 PM
victoire pour le foisFaire comme méthode d'un entier1:57 PM