Go to the first, previous, next, last section, table of contents.


Primitivi struktura podataka

Konstruktori

word

WORD word1 word2
(WORD word1 word2 word3 ...)

outputira rijec formiranu spajanjem inputa.

list

LIST thing1 thing2
(LIST thing1 thing2 thing3 ...)

outputira listu ciji clanovi su inputi, a koji mogu biti bilo koji Logo podatak (rijec, lista ili niz).

sentence

SENTENCE thing1 thing2
SE thing1 thing2
(SENTENCE thing1 thing2 thing3 ...)
(SE thing1 thing2 thing3 ...)

outputira listu ciji clanovi su inputi, ako ti inputi nisu liste, ili clanovi inputa, ako su ti inputi liste.

fput

FPUT thing list

outputira listu jednaku drugom inputu sa dodanim novim clanom, prvim inputom na pocetku.

lput

LPUT thing list

outputira listu jednaku svom drugom inputu sa jednim novim clanom, prvim inputom dodanim na kraju.

array

ARRAY size
(ARRAY size origin)

outputira array (niz) od broja size clanova (mora biti pozitivan integer), od kojih je svaki pocetno prazna lista. Clanovi niza mogu biti izabrani sa ITEM i promijenjeni sa SETITEM. Prvi clan niza, je clan broj 1 ukoliko origin (ishodiste) nije dan kao prvi index. (Tipicno 0 se unosi kao ishodiste, ako se origin upotrijebi.) Array se ispisuje sa PRINT i prijateljima, a moze biti unesena, u viticastim zagradama; oznacite ishodiste sa {a b c}@0.

See section item ; section setitem ; section print

mdarray

MDARRAY sizelist				(library procedura)
(MDARRAY sizelist origin)

outputira multi-dimenzionalni niz. Prvi input mora biti lista od jednog ili vise pozitivnih integera. Drugi input, ako je prisutan, mora biti jedan integer koji odredjuje ishodiste za sve dimenzije niza. Primjer: (MDARRAY [3 5] 0) outputira dvo-dimenzionalni niz ciji clanovi idu od [0 0] do [2 4].

listtoarray

LISTTOARRAY list				(library procedura)
(LISTTOARRAY list origin)

outputira niz iste velicine kao i inputirana lista, ciji clanovi su clanovi input liste.

arraytolist

ARRAYTOLIST array				(library procedura)

outputira listu ciji su clanovi, clanovi inputirane array (niza). Prvi clan liste je prvi clan array-a, bez obzira na ishodiste array-a.

combine

COMBINE thing1 thing2				(library procedura)

ako je thing2 rijec, outputira WORD thing1 thing2. Ako je thing2 lista, outputira FPUT thing1 thing2.

See section word ; section fput

reverse

REVERSE list					(library procedura)

outputira listu ciji clanovi su clanovi inputirane liste, ali u obrnutom redosljedu.

gensym

GENSYM						(library procedura)

outputira unikatnu rijec svaki puta kada se pozove. Rijeci su oblika G1, G2, itd.

Data selektori

first

FIRST thing

ako je input rijec, outputira prvi znak iz rijeci. Ako je input lista, outputira prvi clan liste. Ako je input niz, outputira ishodiste niza (tj., INDEX od prvog clana niza).

firsts

FIRSTS list

outputira listu koja sadrzi FIRST od svakog clana input liste. Greska je ako je bilo koji clan input liste prazan. (Sama input lista moze biti prazna, u kom slucaju je i output prazan.) To bi moglo biti napisano kao

to firsts :list
output map "first :list
end

ali je dano kao primitiv da ubrza iteracijske alate MAP, MAP.SE, i FOREACH.

to transpose :matrix
if emptyp first :matrix [op []]
op fput firsts :matrix transpose bfs :matrix
end

See section map ; section map.se ; section foreach

last

LAST wordorlist

ako je input rijec, outputira zadnji znak iz rijeci. Ako je input lista, outputira zadnjeg clana liste.

butfirst

BUTFIRST wordorlist
BF wordorlist

ako je input word (rijec), outputira rijec koja sadrzi sve osim prvog znaka u inputu. Ako je input lista, outputira listu koja sadrzi sve osim prvog clana inputa.

butfirsts

BUTFIRSTS list
BFS list

outputira listu koja sadrzi BUTFIRST od svakog clana od input liste. Greska je ako je bilo koji clan liste prazan ili je niz. (Sam input moze biti prazan, u kojem slucaju je i output prazan.) To se moze napisati kao

to butfirsts :list
output map "butfirst :list
end

ali je dodan kao primitiv da bi ubrzao iteracijske alate MAP, MAP.SE, i FOREACH.

See section map ; section map.se ; section foreach

butlast

BUTLAST wordorlist
BL wordorlist

ako je input rijec (word), outputira rijec koja sadrzi sve osim zadnjeg znaka u inputu. Ako je input lista, outputira listu koja sadrzi sve osim zadnjeg clana inputa.

item

ITEM index thing

ako je thing rijec, outputira indeksirani znak iz rijeci. Ako je thing lista, outputira indeksirani clan te liste. Ako je thing niz, outputira indeksirani clan niza. Index pocinje sa 1 za rijeci i liste; pocetak indeksa za nizove je odredjen kada je taj niz stvoren.

mditem

MDITEM indexlist array				(library procedura)

outputira clana multidimenzionalnog niza array izabranog pomocu liste brojeva iz indexlist .

pick

PICK list					(library procedura)

outputira slucajno izabrani clan inputirane liste.

remove

REMOVE thing list				(library procedura)

outputira kopiju liste sa svakim clanom jednakim sa thing izvadjenim.

remdup

REMDUP list					(library procedura)

outputira kopiju liste sa izvadjenin duplikatima clanova. Ako su dva ili vise clanova inputirane liste jednaki, najdesniji od njih ostaje u outputu.

quoted

QUOTED thing					(library procedura)

outputira svoj input, ako je lista; outputira input sa dvostrukim navodnikom na pocetku, ako je rijec.

Data mutatori

setitem

SETITEM index array value

komanda. Zamijeni index-irani clan array (niza) sa novom value (vrijednoscu). Osigura da rezultirajuci niz nije cirkularan, tj., value ne moze biti lista ili niz koji sadrzi array.

mdsetitem

MDSETITEM indexlist array value			(library procedura)

komanda. Zamijeni clan niza array izabranog pomocu indexlist sa novom vrijednoscu value.

.setfirst

.SETFIRST list value

komanda. Promijeni prvi clan liste list u value.

UPOZORENJE: Primitivi cije ime pocinje sa tockom su OPASNI. Ne preporucuje se upotreba pocetnicima. Upotreba .SETFIRST moze dovesti do cirkularnih lista, sto ce natjerati neke Logo primitive u beskonacnu petlju; neocekivane promjene drugih data struktura koje dijele prostor sa listom koja se modificira; i gubitke u memoriji kada se cirkularna struktura oslobodi (GC-ira).

.setbf

.SETBF list value

komanda. Promijeni butfirst od list u vrijednost value.

UPOZORENJE: Primitivi cije ime pocinje sa tockom su OPASNI. Ne preporucuje se upotreba pocetnicima. Upotreba .SETBF moze dovesti do cirkularnih lista, sto ce natjerati neke Logo primitive u beskonacnu petlju; neocekivane promjene drugih data struktura koje dijele prostor sa listom koja se modificira; padanje Loga i coredumps (unix), ako butfirst od liste nije i sam lista; i gubitke u memoriji kada se cirkularna struktura oslobodi (GC-ira).

.setitem

.SETITEM index array value

komanda. Promijeni index-irani clan array u value, kao SETITEM, ali bez provjere za cirkularnost. UPOZORENJE:Primitivi cije ime pocinje sa tockom su OPASNI. Ne preporucuje se upotreba pocetnicima. Upotreba .SETITEM moze dovesti do cirkularnih nizova, sto ce natjerati neke Logo primitive u beskonacnu petlju; i gubitke u memoriji kada se cirkularna struktura oslobodi (GC-ira).

See section setitem

push

PUSH stackname thing				(library procedura)

komanda. Doda thing na stack -- koji je vrijednost varijable cije ime je stackname. Ta varijabla mora imati za vrijednost listu; inicijalna vrijednost je prazna lista. Novi clanovi se dodaju na pocetak liste.

pop

POP stackname					(library procedura)

outputira element stacka koji je zadnji gurnut na stack (stack je vrijednost varijable sa imenom stackname) i ujedno brise taj element iz stacka.

queue

QUEUE queuename thing				(library procedura)

komanda. Doda thing na queue (red) koji je vrijednost varijable queuename. Ta varijabla mora za vrijednost imati listu; inicijalna vrijednost mora biti prazna lista. Novi clanovi se dodaju na kraj liste.

dequeue

DEQUEUE queuename				(library procedura)

outputira najstariji elemenat stavljen u QUEUE (red) cije je ime queuename i izvadi taj elemenat iz reda.

Predikati

wordp

WORDP thing
WORD? thing

outputira TRUE ako je input rijec, inace FALSE.

listp

LISTP thing
LIST? thing

outputira TRUE ako je input lista, inace FALSE.

arrayp

ARRAYP thing
ARRAY? thing

outputira TRUE ako je input array, inace FALSE.

emptyp

EMPTYP thing 
EMPTY? thing

outputira TRUE ako je input prazna rijec ili lista, inace outputira FALSE.

equalp

EQUALP thing1 thing2
EQUAL? thing1 thing2
thing1 = thing2

outputira TRUE ako su inputi jednaki, inace FALSE. Dva broja su jednaka ako imaju istu numericku vrijednost. Dvije nebrojcane rijeci su jednake ako imaju iste znakove u istom redosljedu. Ako postoji varijabla CASEIGNOREDP cije je vrijednost TRUE, tada se veliko slovo smatra jednako odgovarajucem malome (to je standardni slucaj). Dvije liste su jednake ako su im clanovi jednaki. Niz je jedino jednak sam sebi; dva odvojeno stvorena niza nisu nikada jednaka, cak i ako svi njihovi clanovi jesu jednaki. (Vazno je znati da li dva izraza imaju isti niz kao svoju vrijednost jer su nizovi promjenjivi; ako, na primjer, dvije varijable imaju isti niz kao svoju vrijednost, tada pozivajuci SETITEM na jednom mijenjamo automatski i drugi.)

See section caseignoredp ; section setitem

beforep

BEFOREP word1 word2
BEFORE? word1 word2

outputira TRUE ako word1 dolazi prije word2 po ASCII redu (za rijeci od slova, po abecedi). Razlikovanje velikih i malih slova ovisi o vrijednosti CASEIGNOREDP. Pazite, ako su inputi brojevi, rezultat ne mora biti isti kao sa LESSP; na primjer, BEFOREP 3 12 je FALSE jer 3 dolazi iza 1 po ASCII tablici.

See section caseignoredp ; section lessp

.eq

.EQ thing1 thing2

outputira TRUE ako su oba inputa isti podatak, tako da aplicirajuci mutator na jednome mijenjamo istovremeno i drugoga. Inace outputira FALSE, cak i ako su inputi isti po vrijednosti.

UPOZORENJE: Primitivi cija imena pocinju sa tockom su OPASNI. Ne preporucuje se njihova upotreba pocetnicima. Upotreba mutatora moze dovesti do cirkularnih data struktura (struktura podataka), beskonacnih petlji ili padanja Loga.

memberp

MEMBERP thing1 thing2
MEMBER? thing1 thing2

ako je thing2 lista ili niz, outputira TRUE ako je thing1 EQUALP sa nekim clanom od thing2, inace FALSE. Ako je thing2 rijec, outputira TRUE ako je thing1 rijec od jednog znaka EQUALP sa jednim od znakova u thing2, inace FALSE.

See section equalp

substringp

SUBSTRINGP thing1 thing2
SUBSTRING? thing1 thing2

ako je thing1 ili thing2 lista ili niz, outputira FALSE. Ako je thing2 rijec, outputira TRUE ako je thing1 EQUALP sa podstringom (podrijeci) od thing2, inace FALSE.

See section equalp

numberp

NUMBERP thing
NUMBER? thing

outputira TRUE ako je input broj, inace FALSE.

backslashedp

BACKSLASHEDP char
BACKSLASHED? char

outputira TRUE ako je input-irani znak unesen u Logo sa backslash-em (\) ispred njega ili izmedju vertikalnih crta (|) da se sprijeci njegovo uobicajeno sintakticko znacenje, inace outputira FALSE. (Outputira TRUE samo ako je znak backslash-irani space, tab, newline, ili jedan od ()[]+-*/=<>":;\~?| )

Upiti

count

COUNT thing

outputira broj znakova u inputu, ako je input rijec; outputira broj clanova u inputu, ako je input lista ili niz. (Za niz, to moze ali i ne mora biti index zadnjeg clana, ovisno o ishodistu niza.)

ascii

ASCII char

outputira integer (izmedju 0 i 255) koji oznacava input znak u ASCII kodu. Prevodi kontrolne znakove kao backslash-irane (\) interpunkcije i vraca kod za odgovarajucu interpunkciju bez backslash-a. (Usporedi sa RAWASCII.)

rawascii

RAWASCII char

outputira integer (izmedju 0 i 255) koji stoji za inputirani znak u ASCII kodu. Interpretira kontrolne znakove kao same sebe. Za nalazenje ASCII koda bilo koje kombinacije na tastaturi, upotrebite RAWASCII RC.

char

CHAR int

outputira znak koji zamjenjuje ASCII kod dan sa inputom int. Input mora biti integer od 0 do 255.

See section ascii

member

MEMBER thing1 thing2

ako je thing2 rijec ili lista i ako bi MEMBERP sa istim inputima outputirao TRUE, outputira dio thing2 od prve pojave thing1 do kraja. Ako bi MEMBERP outputirao FALSE, outputira praznu rijec ili listu, ovisno o tipu thing2. Greska je ako je thing2 niz.

See section memberp

lowercase

LOWERCASE word

outputira kopiju inputirane rijeci, ali sa svim velikim (uppercase) slovima promijenjenim u odgovarajuca mala (lowercase) slova.

uppercase

UPPERCASE word

outputira kopiju inputirane rijeci, ali sa svim malim slovima promijenjenim u odgovarajuca velika.

standout

STANDOUT thing

outputira rijec, koja ce -- ispisana, izgledati kao input -- ali u standout modu (modu koji se istice; boldface, reverse video ili ono sto vas terminal radi kada naglasava). Rijec sadrzi terminal-specificne specijalne znakove na pocetku i kraju; izmedju je rijec koja se ispisuje (kao da se ispisuje sa TYPE) od inputa. Output je uvijek rijec, cak i kada je input neki drugi oblik, ali moze ukljucivati i razmake i druge formatirajuce znakove.
Paznja: rijec outputirana od STANDOUT dok Logo radi na jednom terminalu, vjerojatno nece imati zeljeni efekt, ako se ispise na drugom tipu terminala. Na Macintoshu, nacin na koji STANDOUT radi je nekompatibilan sa upotrebom znakova ciji je ASCII kod veci od 127. Zato, morate izabrati: Instrukcija

CANINVERSE 0 

onemogucava STANDOUT, ali omogucava ispisivanje znakova iznad 127, a instrukcija

CANINVERSE 1 

vraca standardnu situaciju u kojoj je STANDOUT omogucen, ali znakovi iznad 127 ne mogu biti ispisani.

parse

PARSE word

outputira listu koja bi nastala da je inputirana rijec bila unesena sa READLIST operacijom. Tj., PARSE READWORD ima istu vrijednost kao READLIST za iste ucitane znakove.

See section readlist ; section readword

runparse

RUNPARSE wordorlist

outputira listu koja bi bila rezultat da su inputirana rijec ili lista unesene kao instrukcijska linija; znakovi, kao infiks operatori i zagrade su samostojeci clanovi outputa. Podliste od liste koja se RUNPARSE-ira nisu same RUNPARSE-irane.


Go to the first, previous, next, last section, table of contents.