Het heeft een syntax gelijkend op Pascal en een data stuctuur welke veel weg heeft van Lisp .
De andere declaratie typen zijn : atom , integer , byte_sequence , sequence .
| v.b. | jij = 2 | -- integer |
| hij = 3.14 | -- atom (=floating) | |
| ik = "mijn text" | -- (byte_)sequence (=string) | |
| zij = {"mijntext","jouw text","haar text"} | -- sequence |
Een sequence is niet voor iedereen een begrip daar het hier gebruikt wordt voor een verzameling
van data objecten welke indexzeerbaar zijn . Vergelijk het met een open array[] of lijst .
De variabele ik is een lijst van { m , i , j , n , , t , e , x , t } .
Elk element is indexzeerbaar zoals ik[3] geeft j .
Zo geeft zij[2] als waarde "jouw text" en zij[2][3] de letter u .
Een sequence kan (tot het geheugen vol is) onbeperkt lang als diep zijn .
vb. zij = { {} , {{{{}}}} , { {},{} } } .
Wat je in een element van een sequence maakt niet uit .
| vb. | zij = { { 12 ,31 , 41 } , { 12 , "text" , { 3.2 , 1 } } } | |
| zij[2] | geeft { 12 , "text" , { 3.2 , 1 } } | |
| zij[1][2] | geeft 31 | |
| zij[2][3][1] | geeft 3.2 | |
Deel van een sequence wordt gegeven door het beginwaarde .. eindwaarde te geven .
vb: zij[2][2][2..3] geeft ex .
Er zijn een bijzondere aantal functies voor dit object :
| nieuw = append(var,wat) | nieuw = { var , wat } |
| nieuw = prepend(var,wat) | nieuw = { wat , var } |
| nieuw = concat(var,var) | nieuw = { var var } |
| nieuw = insert(var,wat,waar) | nieuw = { var[1..waar-1] , wat , var[waar..$] } |
| nieuw = remove(object,index) | object = { object[1..index-1] , object[index+1..$] } |
| aantal = length(var) | $ is gelijk aan length(var) . |
Bv. ik = 1 zal wel duidelijk zijn evenals ik = "werkt ook" of ik = {"ik","weet","veel"} .
Het eerste is een integer de andere twee zijn sequence's .
| Bv. | ik[2] = 10.10 | geeft voor ik {"ik",10.10,"veel"} |
| ik[3][2..3] = "xx" | geeft voor ik {"ik",10.10,"vxxl"} | |
| ik = append(ik,200) | geeft voor ik {"ik",10.10,"vxxl",{200}} | |
| ik = concat(ik,200) | geeft voor ik {"ik",10.10,"vxxl", 200 } |
| Bv. | sequence telefoon = "050-3013383" |
| object correct = not find(0,telefoon >= '0' and telefoon <= '9' or telefoon = '-') | |
| (n.l telefoon>='0' is {11101111111} n.l. een operator werkt op alle elementen (APL) ) | |
| geeft correct = not find(0,{1,1,1,1,1,1,1,1,1,1,1}) | |
| geeft correct = not 0 | |
| geeft correct = 1 |
PEU heeft zoals de meeste talen de bekende statements zoals :
if conditie then [else] end if
for i=n to k do ..... end for
while conditie do ... end do
exit spring uit een for/while loopprocedure naam (parameters) ...... end procedure
function naam (parameters) ...... end function
return springt met of zonder resultaat uit de procedure/functioninclude filenaam , laad externe programma delen .
ifdef conditie thendef statements [elsedef .. ] enddef , conditioneel vertalen .
Een bekent aantal bestand operaties zijn iets als :
| object | handle = open( naam , operatie ) | open bestand |
| close(handle) | sluit bestand | |
| removef( naam ) | verwijder bestand "naam" | |
| renamef( oldname , newname ) | wijzig bestandsnaam "oldname" in "newname" | |
| getc(handle) | lees 1 character uit bestand | |
| gets(handle) | lees 1 regeluit bestand | |
| putc(handle) | schrijf 1 character naar bestand | |
| puts(handle) | schrijf 1 regel naar bestand | |
| printf(handle,format,variabelen) | schrijf geformateerd naar bestand | |
| readf(handle,format,variabelen) | lees geformateerd van bestand | |
| string=sprintf(format,variabelen) | schrijf geformateerd in het geheugen | |
| sequence=sreadf(variabelen,format) | lees geformateerd naar het geheugen | |
| print(handle,sequence) | schrijf internformaat naar bestand | |
| sequence=get(handle) | lees internformaat van bestand | |
Dat zijn er nog al wat . Ze zijn ingedeeld in 5 delen .
Groeten Menno aug 2010
Peu en externe functies
Deze zijn standard gegeven in de folder include .
Dit zijn dingen als sort() en custom_sort() , file_find() .
Daar zitten dingen in als database , datum routines .
Voor alle mogelijkheden lees de externe functies .
Ontstaan .
Rond 1996 onstaat het taaltje genaamd Euphoria gemaakt door ene Robert Craig .
Rond 2000 onstaat er een opensource versie als afstudeeropdracht gemaakt door Pete Eberlein .
Deze versie heet dan PEU en is door Jimmy Brown en Menno gepoogd bug vrij te krijgen .
Rond 2002 haakt Brown af en is Menno alleen verder gegaan.
In 2004 geeft Robert Craig de versie vrij als opensource aan de werkgroep Open Euphoria .
Deze werkgroep maakt dan versie 3 en 4 . Welke naar mijn mening zoveel toeters en bellen
bevat dat het zeker niet eenvoudiger op is geworden .
PEU is een opensource versie gebasserd op Euphoria 2.x met een aantal extensies .