-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ea6ccee
commit b557e4a
Showing
6 changed files
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Object ancestors := method( | ||
prototype := self proto | ||
if(prototype != Object, | ||
writeln("Slots of ", prototype type, "\n---------------") | ||
prototype slotNames foreach(slotName, writeln(slotName)) | ||
writeln | ||
prototype ancestors)) | ||
|
||
|
||
Animal := Object clone | ||
Animal speak := method( | ||
"ambiguous animal noise" println) | ||
|
||
Duck := Animal clone | ||
Duck speak := method( | ||
"quack" println) | ||
|
||
Duck walk := method( | ||
"waddle" println) | ||
|
||
disco := Duck clone | ||
disco ancestors |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Builder := Object clone | ||
|
||
Builder forward := method( | ||
writeln("<", call message name, ">") | ||
call message arguments foreach( | ||
arg, | ||
content := self doMessage(arg); | ||
if(content type == "Sequence", writeln(content))) | ||
writeln("</",call message name, ">")) | ||
Builder ul( | ||
li("io"), | ||
li("Lua"), | ||
li("JavaScript")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
vizzini := Object clone | ||
vizzini talk := method( | ||
"Fezzik, are there rocks ahead?" println | ||
yield | ||
"No more rhymes now, I mean it." println | ||
yield) | ||
fezzik := Object clone | ||
|
||
fezzik rhyme := method( | ||
yield | ||
"If there are, we'll all be dead." println | ||
yield | ||
"Anybody want a peanut?" println) | ||
vizzini @@talk; fezzik @@rhyme | ||
Coroutine currentCoroutine pause |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Object fib := method(n, | ||
if(n == 0, 0, (if(n == 1, 1, Object fib(n - 1) + Object fib(n - 2)))) | ||
) | ||
Object fib(25) println | ||
List myAverage := method(inlist, | ||
inlist sum / inlist size | ||
) | ||
List myAverage(list(1,2,3)) println |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# START:range | ||
OperatorTable addAssignOperator(":", "atPutNumber") | ||
# END:range | ||
# START:curlyBrackets | ||
curlyBrackets := method( | ||
r := Map clone | ||
call message arguments foreach(arg, | ||
r doMessage(arg) | ||
) | ||
r | ||
) | ||
# END:curlyBrackets | ||
# START:atPutNumber | ||
Map atPutNumber := method( | ||
self atPut( | ||
call evalArgAt(0) asMutable removePrefix("\"") removeSuffix("\""), | ||
call evalArgAt(1)) | ||
) | ||
# END:atPutNumber | ||
# START:use | ||
s := File with("phonebook.txt") openForReading contents | ||
phoneNumbers := doString(s) | ||
phoneNumbers keys println | ||
phoneNumbers values println | ||
# END:use |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
unless := method( | ||
(call sender doMessage(call message argAt(0))) ifFalse( | ||
call sender doMessage(call message argAt(1))) ifTrue( | ||
call sender doMessage(call message argAt(2))) | ||
) | ||
unless(1 == 2, write("One is not 2\n"), write("one is 2\n")) |