Mise à jour des réponses

This commit is contained in:
Yannick Francois
2018-02-15 17:15:28 +01:00
parent b45c8a8a3c
commit 797761eb1a
8 changed files with 207 additions and 4 deletions
@@ -0,0 +1,77 @@
local function strsplit(delimiter, text)
if delimiter == "" then
error("delimiter matches empty string!")
end
local list, pos, first, last = {}, 1
while true do
first, last = text:find(delimiter, pos, true)
if first then -- found?
table.insert(list, text:sub(pos, first - 1))
pos = last + 1
else
table.insert(list, text:sub(pos))
break
end
end
return list
end
M.private.strsplit = strsplit
# Groupes
## Fonctions et Variables - représentations de données présentes à l'interieur du bout de code
### Fonctions et variables assignée dans ce bout de code - Dont la fonction peut être connue en lisant ce bout de code
strsplit
delimiter
text
list
pos
first
last
found
### Fonctions et variables définies autre part - dont la fonction ne peut pas être connue (mais potentiellement inférée) en lisant ce bout de code
error()
text:find()
text:sub()
table.insert()
M
## Grammaire du langage - Element permettant les opérations basiques d'un langage de programmation
### Constantes - données présentes à l'interieur du bout de code
"" (string)
"delimiter matches empty string!" (String)
1 (Int)
true (Boolean)
### Opérateurs - permet de modifier/comparer la donnée
==
-
+
### Elements permettant de gérer l'assignation et le scopting des variables
local
function()
private
return
=
--
### Elements permettant la procéduralité
if/then/else/end
While/do/end
?
@@ -0,0 +1,19 @@
Hello Yannick,
Merci pour ce premier exercice, je suis super contente d'être le cobaye de cette expérience !
Tu trouveras en PJ ma réponse à l'exercice.
Ce que j'ai pensé de l'exercice :
- je ne connais pas les mots de l'informatique :)
- je n'aime pas ne pas aller chercher la réponse sur internet (j'aurais pu le faire, mais je me dis que ce n'était pas l'esprit de l'exercice)
- j'ai changé plusieurs fois l'organisation des groupes de mots, mais rarement ce qu'il y avait à l'intérieur des groupes.
- j'ai trouvé interessant de choisir un prisme de classement
Ce que j'ai appris durant l'exercice.
- que "-- found?" est mon némésis, je veux bien une réponse sur ce que c'est parce que je ne sais même pas comment demander aux internets.
- j'ai du mal à comprendre où je dois mettre mon attention pendant l'exercice, pour avancer sur le chemin de la lecture de code.
- Que j'aurais pu classer de plein de manières différentes.
Voilou, merci encore, et j'ai hate de recevoir l'épisode 2
@@ -0,0 +1,49 @@
# Groupes
# Ce premier groupe de mots détermine la structure et la circulation
# -termes conditionnels : while, if, then, else
# -termes d'action : do, return, break, end
# -terme d'avertissement : error
# Ce deuxième groupe range les signes par catégorie selon leur rôle
# -signes de ponctuation : ( ) " , { } : .
# -signe d'affectation : =
# -signes d'arithmétique : + - ==
# J'ai regroupé ces trois ensembles par analogie avec la syntaxe humaine (sujet, verbe, complément)
# -variables : delimiter, text, strsplit, pos, first, last
# -fonctions : strsplit, find, insert, sub, found?
# -adjectifs : local, private
# Ce groupe contient différents types de variables
# -chaînes de caractères : "delimiter matches empty string!"
# -booléens : true
# -nombres : 1
# -tableaux : table, list
# En dernier, un peu à part
# -classe : M
# J'ai l'impression que cet exercice m'a fait réfléchir sur le sens des termes en m'amenant à mobiliser des notions que je connaissais déjà, en me forçant à m'interroger sur des petits bouts de code les uns après les autres. Au début, j'ai essayé de faire des recherches sur Internet pour m'aider mais ça n'a pas été fructueux donc j'ai laissé tomber. Je crois que c'est du R. Je comprends vaguement le code dans l'ensemble mais pas dans le détail. J'ai un peu le sentiment d'être passé à côté de l'exercice et que j'apprendrai surtout en lisant la correction.
local function strsplit(delimiter, text)
if delimiter == "" then
error("delimiter matches empty string!")
end
local list, pos, first, last = {}, 1
while true do
first, last = text:find(delimiter, pos, true)
if first then -- found?
table.insert(list, text:sub(pos, first - 1))
pos = last + 1
else
table.insert(list, text:sub(pos))
break
end
end
return list
end
M.private.strsplit = strsplit
@@ -0,0 +1,7 @@
Hello Yannick,
Ça y est, j'ai fait le premier exercice de lecture de code. Il est en pièce jointe.
Bonne semaine à toi, et à vendredi !
Eric
@@ -0,0 +1,46 @@
chalut,
j'ai fait mes devoirs !
- ranger par groupe cohérent chacun des mots/signe de ce bout de code.
done
- donner un nom à ces groupes. Ce n'est pas très grave si c'est pas LE nom, ce qui m'intéresse, c'est le nom que VOUS lui donné
done
- expliquer pourquoi ce nom et le regroupement (en quelques mots)
je te propose deux versions, qui témoignent de la progression de ma réflexion.
dans la v1
j'ai commencé par identifier les mots-clés, car ça me semblait être le plus simple. ce sont tous les mots qui te sont imposés par le langage. mots-clés parce que ces mots sont généralement courts et ont un sens déterminé.
puis j'ai identifié les variables, dans lesquelles on stocke des valeurs. les variables sont les mots à gauche du signe égal ou sont passées en argument de fonctions. les valeurs sont toujours à droite du signe égal. j'ai utilisé les mots qu'on emploie généralement pour ce genre de choses. ça commençait à devenir bien coloré.
j'ai cherché des catégories pour les mots restants, j'ai vu insert, j'ai compris que j'avais oublié les fonctions. donc j'ai rajouté les fonctions, avec un doute sur find et sub, car ils ne sont pas appelés avec . mais avec : bizarrement. mais j'ai tout de même décidé que c'étaient des fonctions.
ensuite sont venus tous les symboles, que j'ai appelés ponctuation, car ça permet de structurer, découper, regrouper le code. j'ai hésité sur les symboles + - =. je pensais les identifier comme ponctuation au début, puis je me suis dit que a + b c'était comme a.add(b) donc + est devenu une fonction. pareil pour a = 3 qui peut se lire a.assign(3).
là il restait encore les mots table et text. je ne les voyais pas comme des variables car on ne les a jamais déclarés et ils ne varient pas à mon sens. donc mots-clés.
il restait aussi -- found? dont je n'ai pas compris le sens. jai donc supposé que c’était un commentaire
mais je n'étais pas vraiment satisfait à cause de certains cas comme strsplit à la dernière ligne, car strsplit changeait de catégorie par rapport à la première ligne ; à cause de first - 1 qui mélangeait variable et valeur ; à cause du mélange de couleurs dans les paramètres de la fonction find.
dans la v2
donc j'ai eu envie de changer de concept et de remplacer variable et valeur par left-value et right-value. c'est Laurent qui m'en a parlé pour la première fois, j'avais pas très bien compris à l'époque, mais là, bizarrement, ça me semblait plus adapté.
donc lvalues ou left-values pour les mots généralement placés à gauche du signe = et vice versa. mais généralement n'est pas une règle.
la règle que je me suis donnée pour distinguer ces deux catégories est la suivante : les lvalues sont modifiées lorsqu'elles apparaissent, les rvalues ne sont pas modifiées. il me semble que le découpage est plus logique maintenant.
- votre réponse à l'exercice
done
- ce que vous avez pensez de l'exercice
moins facile que prévu
super utile pour mettre ses connaissances à l'épreuve
j'aimerais avoir une analyse de ma réponse par un expert, ou un découpage cohérent, car je sais que le mien manque de logique et j'ai toujours des doutes en écrivant ce point meta
- ce que vous avez appris durant l'exercice.
j'ai pensé pendant l'exercice au terme littéral que Laurent emploie souvent et que je n'ai jamais compris. peut-être que l'une de mes deux versions à quelque chose à voir avec ce concept. peut-être pas.
peut-être qu'il n'y a pas qu'un seul découpage correct
tout ce que je sais, c'est que je ne sais rien
et voilà :) très bonne soirée Yannick
Etienne Puydebois
+9 -4
View File
@@ -2,24 +2,29 @@
Episode 1:
En attente de réponse:
- Anna-Livia
- Sakada
- Carole Gombauld
- Étienne puydebois
- Christophe
- Elodie
- Sarah
- Eric
Envoyé et répondu:
- Estelle
- Alexandra
- Souley
- Anna-Livia
- Étienne puydebois
- Eric
Episode 1 phase 2:
En attente de réponse
A envoyer:
- Anna-Livia
- Étienne puydebois
- Eric
En attente de réponse:
- Estelle
- Alexandra
- Souley