Page 2 of 3

Posted: Tue Jun 19, 2007 9:00 pm
by Norfolk
pred ==
edit: was fout.

Uitleg:

De clue is dat de n eerst ingevuld wordt. De n is van de vorm \f.\x.(f (f (f ...(x) ...).
Op elke f wordt dus die "next" ingevuld. En op de x wordt [0,0] ingevoerd.
Dus die next zal n keer uitgevoerd worden op [0,0].
In stap 1 is het dus [0,1] geworden en in stap n is het dus [n-1, n].
Je gebruikt dus die true nog eens om het eerste element daaruit te halen :)

Posted: Tue Jun 19, 2007 9:19 pm
by Norfolk
Bij die wederzijdse recursie is het gewoon de bedoeling dat ge alles voorkomens van f_i kunt vervangen. Want daarvoor hebt ge recursie nodig aangezien een body van f_i een andere f_j kan inroepen.

Posted: Tue Jun 19, 2007 9:43 pm
by Norfolk
Laatste slide van Les4.ppt:
Die aangepaste regels bij die bomen van functioneel programmeren staat:

alpha-regel: \x.E => \z.(\x.E z)

wrm da?


In les5 staat op slide 8 ook nog:
(\x.E Q) -> E
Die Q valt gewoon weg ofwa? die moet toch op de plaats van x ingevuld worden?

Posted: Tue Jun 19, 2007 10:17 pm
by filippeesje
Norfolk wrote:pred ==
(\n.(n (\p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0))) true

Uitleg:

De clue is dat de n eerst ingevuld wordt. De n is van de vorm \f.\x.(f (f (f ...(x) ...).
Op elke f wordt dus die "next" ingevuld. En op de x wordt [0,0] ingevoerd.
Dus die next zal n keer uitgevoerd worden op [0,0].
In stap 1 is het dus [0,1] geworden en in stap n is het dus [n-1, n].
Je gebruikt dus die true nog eens om het eerste element daaruit te halen :)

das bena net het tegengestelde van wat in de "cursus" staat :(

Posted: Tue Jun 19, 2007 10:23 pm
by Norfolk
filippeesje wrote:
Norfolk wrote:pred ==
(\n.(n (\p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0))) true

Uitleg:

De clue is dat de n eerst ingevuld wordt. De n is van de vorm \f.\x.(f (f (f ...(x) ...).
Op elke f wordt dus die "next" ingevuld. En op de x wordt [0,0] ingevoerd.
Dus die next zal n keer uitgevoerd worden op [0,0].
In stap 1 is het dus [0,1] geworden en in stap n is het dus [n-1, n].
Je gebruikt dus die true nog eens om het eerste element daaruit te halen :)

das bena net het tegengestelde van wat in de "cursus" staat :(
uiteindelijk is het hetzelfde als in de cursus, enkel moet na de laatste (p true) een haakje weg, dus ))) ipv )))).

Ah en bah, kwas precies niet goed wakker, bij mijn eerste ding had ik de 2-de coordinaat laten optellen :D daarmee moest het true zijn, hier is het andersom en moet het toch false zijn... :shock: :roll: :roll:

HET ECHTE MOET DUS ZIJN:

(\n.(n (\p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0))) false

of zoals ik het eerst had:

(\n.(n (\p.\z.((z (p true) (succ (p true))))) \z.((z 0) 0))) true

;)

Posted: Tue Jun 19, 2007 10:25 pm
by filippeesje
Norfolk wrote:
filippeesje wrote:
Norfolk wrote:pred ==
(\n.(n (\p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0))) true

Uitleg:

De clue is dat de n eerst ingevuld wordt. De n is van de vorm \f.\x.(f (f (f ...(x) ...).
Op elke f wordt dus die "next" ingevuld. En op de x wordt [0,0] ingevoerd.
Dus die next zal n keer uitgevoerd worden op [0,0].
In stap 1 is het dus [0,1] geworden en in stap n is het dus [n-1, n].
Je gebruikt dus die true nog eens om het eerste element daaruit te halen :)

das bena net het tegengestelde van wat in de "cursus" staat :(
uiteindelijk is het hetzelfde als in de cursus, enkel moet na de laatste (p true) een haakje weg, dus ))) ipv )))).

Ah en bah, kwas precies niet goed wakker, bij mijn eerste ding had ik de 2-de coordinaat laten optellen :D daarmee moest het true zijn, hier is het andersom en moet het toch false zijn... :shock: :roll: :roll:

HET ECHTE MOET DUS ZIJN:

(\n.(n (\p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0))) false

of zoals ik het eerst had:

(\n.(n (\p.\z.((z (p true) (succ (p true))))) \z.((z 0) 0))) true

;)

nu ben ik ook akkoord :P.. maar hoe krijgt ge uw getal nu in n als false/true uw argument is?

Posted: Tue Jun 19, 2007 10:42 pm
by Norfolk
ja da moet daar dus idd voor ;) en maja in de cursus werd daar ook geen rekening mee gehouden.
ge kunt da oplossen door:

\x.((\n.((n \p.\z.((z (succ (p true))) (p true))) \z.((z 0) 0)) x) false)

waar x dan de n invult, en dan staat de false juist enzo :)
ps: khoop dak hier weer geen bullshit schreef ^^

Posted: Tue Jun 19, 2007 10:48 pm
by Shinta
Norfolk wrote:Laatste slide van Les4.ppt:
Die aangepaste regels bij die bomen van functioneel programmeren staat:

alpha-regel: \x.E => \z.(\x.E z)

wrm da?


In les5 staat op slide 8 ook nog:
(\x.E Q) -> E
Die Q valt gewoon weg ofwa? die moet toch op de plaats van x ingevuld worden?
webbe de antwoorde same opgelost dus dit is in orde :).

Posted: Wed Jun 20, 2007 1:45 pm
by slimmy
bij het vereenvoudigen van typedescriptoren hebt ge:

((bool t) o) = t unie o
en
(int [o1,...on]) = [o1 U ... U on]

ik begrijp da ni zo goe :shock:

Posted: Wed Jun 20, 2007 2:01 pm
by Yo_rik
slimmy wrote:Image

klopt da gemarkeerd ding wel in de cursus? \x.\y.y t staat toch voor false en is niet de lambda uitdrukking voor NOT...

of slaag ik compleet de bal mis?
Deze pagina (les3, slide 9) is vanmorgen gecorrigeerd op de website van fots. (wel erg op tijd :P). De nieuwe versie:

Image

Posted: Wed Jun 20, 2007 2:08 pm
by Norfolk
ja nog altijd is z en t verkeerd he ;)
want z = false en t = true bij de implementatie, terwijl hij zegt dat hij het anders toepast :P

Posted: Wed Jun 20, 2007 2:18 pm
by slimmy
fots ftw :P

Posted: Wed Jun 20, 2007 2:26 pm
by Shinta
slimmy wrote:bij het vereenvoudigen van typedescriptoren hebt ge:

((bool t) o) = t unie o
en
(int [o1,...on]) = [o1 U ... U on]

ik begrijp da ni zo goe :shock:
gewoon vanbuite lere ;), of wete waar het staat in ons geval

Posted: Wed Jun 20, 2007 4:15 pm
by filippeesje
slimmy wrote:fots ftw :P
:shock: hoeveel foute (haakjes vooral) heb ik al ni gevonde in die slides :evil:

Posted: Wed Jun 20, 2007 4:23 pm
by slimmy
morgen zo'n vraag: "geef alle fouten in de cursus"