16.07.2006 11:08
- oppdatert 654 dager siden av Terje Pedersen
MinkyMinky er et nytt prototype, funksjonelt, stakkbasert programmeringsspråk. Foreløpig er det ikke laget noen interpreter for det.
Jeg ser aldri helt ut til å bli fornøyd med noen som helst programmeringsspråk, så det spørs om jeg blir fornøyd med mitt eget ;P Men i hvert fall synes det er veldig gøy å leke meg syntaks, hvordan gjøre ting kanskje litt lettere enn i dag og slikt. Tenke litt anerledes uten å være så helt forskjellig fra annet som finnes.
Status: Kan begynne på interpreteren nå.
PS! Skal ikke så bort fra det er noen småfeil her i eksempelkoden som ikke har blitt rettet underveis
Noen små eksempel forhåpentligvis oppdaterte ;P
Fibonacci
- fib : {n, cond (n < 2, 1, fib (n - 2), fib (n incr (-1)))}
- fib (args at (0) asnumber) println
Harmonic
- n : cond (args length > 0, args at (0) asnumber, 1000000)
- partialsum : 0.0
- 1 to (n) each (i, partialsum : partialSum + (1.0 / i)) }
- partialsum println
Struct
- adress : (
- name : "Terje"
- age : 30
- )
- adress name println
Enum
- (mon, tue, wed, thu, fri, sat, sun) : 0 to (6)
Interpolation
- "The time is {now}" println
OO
- Senikk : Object with(
- a : 2
- m : {a, b, a + b}
- t : {a : "Test", a}
- r : {a, (1, 2 , 3, a)}
- say : {s, s println}
- )
- Senikk a println # prints 2
- Senikk m (1, 2) println # prints 3
- Senikk t println # prints "Test"
Mandelbrot
- Mandelbrot : Object with (
- (height, width) : cond (args length > 0, width : args at (0) asnumber, 100)
- (bits, bitnum) : 0
- (Zr, Zi) : 0.0
- limit2 : 4.0
- isOverLimit : false
- m : 50
- "P4" println
- "{width} {height}" println
- loop (y, 0, height,
- loop (x, 0, width,
- (Zr, Zi) : 0.0
- Cr : 2.0 * x / width - 1.5
- Ci : 2.0 * y / height - 1.0
- i : 0
- loop (true, i incr < m and isOverLimit not,
- Tr : (Zr * Zr) - (Zi * Zi) + Cr
- Ti : 2.0 * Zr * Zi + Ci
- (Zr, Zi) : (Tr, Ti)
- isOverLimit : (Zr * Zr) + (Zi * Zi) > limit2
- )
- bits : bits << 1
- cond (isOverLimit not, bits incr)
- bitnum incr
- cond (width - 1 = x,
- bits : bits << (8 - bitnum)
- bitnum : 8
- )
- cond (bitnum = 8,
- cout writeByte (bits)
- (bits, bitnum) : 0
- )
- )
- )
- )
Enkel IRC Bot
- name : "Terje Pedersen"
- nick : "senikk"
- open ("tcp://irc.senikk.com:6667") with (
- "USER senikk@irc.senikk.com 0 * :{name}" writeln
- "NICK {nick}" writeln
- "JOIN #senikk" writeln
- loop (
- cmd : readln split
- cond (cmd at (0) at(0) = ":", cmd at! (0) substring (1,-1))
- cond (
- cmd at (0) = "PING", "PONG" writeln,
- cmd at (1) = "JOIN", "Join" println
- )
- )
- )
XML
- person : {name, age,
- <person><name>{name}</name><age>{age}</age></person>
- }
- book : <book>
- {person ("Terje Pedersen", 30)}
- {person ("Minky", 0)}
- </book>
- book person at (1) name println # prints Minky
Relevante innlegg/sider/lenker
| Sider: Lenker: | På forsiden: |



0 tilbaketråkk: