Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
57
Task/Nested-function/Simula/nested-function.simula
Normal file
57
Task/Nested-function/Simula/nested-function.simula
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
COMMENT CLASS SIMSET IS SIMULA'S STANDARD LINKED LIST DATA TYPE
|
||||
CLASS HEAD IS THE LIST ITSELF
|
||||
CLASS LINK IS THE ELEMENT OF A LIST
|
||||
PROCEDURE IS THE TERM USED FOR FUNCTIONS IN SIMULA
|
||||
TEXT IS THE TERM USED FOR STRINGS IN SIMULA ;
|
||||
SIMSET
|
||||
BEGIN
|
||||
|
||||
LINK CLASS ITEM(TXT); TEXT TXT;;
|
||||
|
||||
COMMENT CREATING THE LIST AS A WHOLE WITH THE SEPARATOR ". "
|
||||
GIVEN AS AN ARGUMENT;
|
||||
REF(HEAD) PROCEDURE MAKELIST(SEPARATOR); TEXT SEPARATOR;
|
||||
BEGIN
|
||||
COMMENT VARIABLE TO KEEP TRACK OF THE ITEM NUMBER ;
|
||||
INTEGER COUNTER;
|
||||
|
||||
COMMENT THIS IS THE NESTED FUNCTION ;
|
||||
REF(ITEM) PROCEDURE MAKEITEM(TXT); TEXT TXT;
|
||||
BEGIN
|
||||
TEXT NUM;
|
||||
TEXT ITEMTEXT;
|
||||
|
||||
COMMENT CONVERT NUMBER TO STRING ;
|
||||
NUM :- BLANKS(5);
|
||||
NUM.PUTINT(COUNTER);
|
||||
|
||||
COMMENT ACCESS SEPARATOR AND MODIFY COUNTER;
|
||||
COUNTER := COUNTER + 1;
|
||||
ITEMTEXT :- NUM & SEPARATOR & TXT;
|
||||
|
||||
MAKEITEM :- NEW ITEM(ITEMTEXT);
|
||||
END MAKEITEM;
|
||||
|
||||
REF(HEAD) HD;
|
||||
HD :- NEW HEAD;
|
||||
COUNTER := 1;
|
||||
MAKEITEM("FIRST").INTO(HD);
|
||||
MAKEITEM("SECOND").INTO(HD);
|
||||
MAKEITEM("THIRD").INTO(HD);
|
||||
MAKELIST :- HD;
|
||||
END MAKELIST;
|
||||
|
||||
REF(HEAD) LIST;
|
||||
REF(ITEM) IT;
|
||||
LIST :- MAKELIST(". ");
|
||||
|
||||
COMMENT NAVIGATE THROUGH THE LIST ;
|
||||
IT :- LIST.FIRST;
|
||||
WHILE IT =/= NONE DO
|
||||
BEGIN
|
||||
OUTTEXT(IT.TXT);
|
||||
OUTIMAGE;
|
||||
IT :- IT.SUC;
|
||||
END;
|
||||
|
||||
END.
|
||||
Loading…
Add table
Add a link
Reference in a new issue