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 .