by Lucas Dohmen
Dynamic OO language with ideas traditionally described as "functional".

Halunke is a dynamic, object-oriented language that has a simple grammar inspired by Smalltalk and Lisp. It is created to show that interesting characteristics traditionally described as "functional" make sense in an object-oriented language:

  • Separation of identity and data (but not data and behavior)
  • Immutability and persistent data structures
  • Isolation of Side-Effects
  • Pattern matching

It also has the following characteristics:

  • There is no null/nil value in the language
(Class new 'Greeter
  attributes ["name"]
  methods @[
    "greet" { |'self|
      ("Hello " + (self name))
    }
    "name" { |'self|
      (self @ "name" else "<Unknown>")
    }
  ]
  class_methods @[
    "for" { |'self 'name|
      (self new @["name" name])
    }
  ]
)

('greeter = (Greeter for "World"))
(stdio puts (greeter greet))
Information updated 02/12/18
View Comments