About
Rip is a functional, object-oriented programming language. "Hello World" is a simple one-liner:
System.IO.out("Hello, World")
- Types and lambdas are completely anonymous, just like every other object. To name anything you need to assign it to a reference or a property.
- Lambdas may be passed around like any other object.
- Lambdas are called by passing arguments in parenthesis.
System
is a predefined reference with properties referencing standard types. Properties are lazy evaluated.- Types have a property,
System.Type.@.@
, known as the prototype, which is used to define what instances will look like (similar to JavaScript's prototype, but not ugly). - Lambdas have a property,
System.Lambda.@.@
, which is a reference to the current receiver (similar to JavaScript'sthis
keyword when used inside a function).
Practically speaking Rip allows one to write code like the following:
base = URL.new("www.example.com", 80, :username, "password")
url = base / :resource / :path ? :query: "search terms" ? :abc: :xyz
expect(url.to_string()) to_equal "http://username:password@www.example.com/resource/path?query=search%20terms&abc=xyz"