Het gaat over head en tail m.b.t. rijen.
Nu snap ik het principe wel, maar in boek staat het volgende:
head((a)) = a
tail ((a)) = ()
Oke, daar kan ik inkomen.
Maar een paar regels lager staat:
head(head(($,@,#))) = ongedefinieerd, immers head($) is ongedefinieerd omdat head gedefinieerd is op een rij en niet op een element.
En dat snap ik nu niet. Waarom is head ($) geen $ ?
Ik vermoed dat het iets met de haakjes te maken heeft, en dat head($) een element is, en geen rij. Anders had er head(($)) moeten staan. Heb ik dat juist?
En zo ja, waarom is het geen rij meer na de eerste head bewerking?
Head en Tail op lege rij, of singleton
-
- Nieuw lid
- Berichten: 16
- Lid geworden op: 08 jan 2012, 18:37
- Locatie: Aruba
Re: Head en Tail op lege rij, of singleton
Neem als rij een rij getallen: (1,2,3)
(1,2,3) is een rij
1, 2 en 3 zijn elementen van die rij, in dit geval getallen dus GEEN rijen.
head is uitsluitend gedefinieerd op rijen en geeft het eerste element van die rij terug.
In jouw voorbeeld:
- ($,@,#) is een rij, $ een symbool
- head(($,@,#)) = $, een symbool dus GEEN rij
- head(head(($,@,#))) = head($) = head van een symbool en een symbool heeft geen head.
head($) is dus ongedefinieerd.
Indien je zou hebben head((head(($,@,#)))) lukt het wel:
- head(($,@,#)) = symbool $ als hierboven
- (head(($,@,#))) = ($) een rij bestaande uit 1 element $
Omdat ($) een rij is is head daarop wel gedefineerd:
- head((head(($,@,#)))) = head(($)) = $
Nog een alternatief: als je een rij van rijen hebt gaat het ook goed:
neem de rij (($,@,#), (1,23,456), (Belgie, Nederland))
dan is
head((($,@,#), (1,23,456), (Belgie, Nederland))) = ($,@,#) = een rij
dus
head(head((($,@,#), (1,23,456), (Belgie, Nederland)))) = head(($,@,#)) = $
(1,2,3) is een rij
1, 2 en 3 zijn elementen van die rij, in dit geval getallen dus GEEN rijen.
head is uitsluitend gedefinieerd op rijen en geeft het eerste element van die rij terug.
In jouw voorbeeld:
- ($,@,#) is een rij, $ een symbool
- head(($,@,#)) = $, een symbool dus GEEN rij
- head(head(($,@,#))) = head($) = head van een symbool en een symbool heeft geen head.
head($) is dus ongedefinieerd.
Indien je zou hebben head((head(($,@,#)))) lukt het wel:
- head(($,@,#)) = symbool $ als hierboven
- (head(($,@,#))) = ($) een rij bestaande uit 1 element $
Omdat ($) een rij is is head daarop wel gedefineerd:
- head((head(($,@,#)))) = head(($)) = $
Nog een alternatief: als je een rij van rijen hebt gaat het ook goed:
neem de rij (($,@,#), (1,23,456), (Belgie, Nederland))
dan is
head((($,@,#), (1,23,456), (Belgie, Nederland))) = ($,@,#) = een rij
dus
head(head((($,@,#), (1,23,456), (Belgie, Nederland)))) = head(($,@,#)) = $
-
- Nieuw lid
- Berichten: 16
- Lid geworden op: 08 jan 2012, 18:37
- Locatie: Aruba
Re: Head en Tail op lege rij, of singleton
Hallo Arie,
Dank je voor de duidelijke uitleg. Het is mij nu helder.
Dank je voor de duidelijke uitleg. Het is mij nu helder.