Monkey is an actively used programming language created in 2011.

8Years Old 1,020Users 0Jobs

Example code from Linguist:

'Showcases use of Lambda functions and Generics.

#Import "<std>"
Using std..

Function Main()

	Local testStack := New Stack< MyObject >
	
	For Local n := 1 To 20
		Local newItem := New MyObject
		newItem.depth = Rnd( 0, 100 )
		testStack.Push( newItem )
	Next
		
	testStack.Sort( Lambda:Int( x:MyObject,y:MyObject )
		Return x.depth<=>y.depth
	End )
	
	For Local n := Eachin testStack
		Print( n.depth )
	Next
	
End


Struct MyObject
	Field depth := 0
End

Example code from Wikipedia:

' The 'Player' class, as referenced previously (Placement does not matter):
Class Player
  ' Declare all of our fields (Class-local variables):
  
  ' These two variables will act as our position on the screen.
  ' (Alternatively, an 'Array or third-party class could be used)
  Field x:Float, y:Float
  
  ' This will be a reference to an 'Image' object we'll specify.
  Field image:Image
  
  ' Constructor(s):
  
  ' Overloading 'New' mainly works the same way as constructors in other languages.
  ' Returning is generally not recommended for constructors.
  Method New(img:Image, x:Float=100, y:Float=100)
    ' Due to the arguments using the same names, 'Self'
    ' is required to resolve our fields' names:
    Self.image = img
    
    Self.x = x
    Self.y = y
  End
  
  ' Methods:
  
  ' This will be our main render-method for this object:
  Method Draw:Void()
    ' Draw the 'image' object to the screen using our 'x' and 'y' fields.
    DrawImage(image, x, y)
    
    ' Returning in a 'Void' function is not required. (Some still recommend it)
    Return
  End
End
Edit

Last updated February 11th, 2019