Make constructors just methods.
* Eliminate "new" reserved word. * Allow "this" before a method definition to define a constructor. * Only create a default constructor for classes that don't define one.
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
|
||||
A lightweight coroutine. [Here](../fibers.html) is a gentle introduction.
|
||||
|
||||
### new **Fiber**(function)
|
||||
### Fiber.**new**(function)
|
||||
|
||||
Creates a new fiber that executes `function` in a separate coroutine when the
|
||||
fiber is run. Does not immediately start running the fiber.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print("I won't get printed")
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ Pauses the current fiber and transfers control to the parent fiber. "Parent"
|
||||
here means the last fiber that was started using `call` and not `run`.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print("Before yield")
|
||||
Fiber.yield()
|
||||
IO.print("After yield")
|
||||
@@ -41,7 +41,7 @@ If a yielded fiber is resumed by calling `call()` or `run()` with an argument,
|
||||
`yield()` returns that value.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print(Fiber.yield()) // "value"
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ Similar to `Fiber.yield` but provides a value to return to the parent fiber's
|
||||
`call`.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
Fiber.yield("value")
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ Similar to `Fiber.yield` but provides a value to return to the parent fiber's
|
||||
Starts or resumes the fiber if it is in a paused state.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print("Fiber called")
|
||||
Fiber.yield()
|
||||
IO.print("Fiber called again")
|
||||
@@ -94,7 +94,7 @@ If the called fiber is resuming from a yield, the `yield()` method returns
|
||||
`null` in the called fiber.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print(Fiber.yield())
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ Invokes the fiber or resumes the fiber if it is in a paused state and sets
|
||||
`value` as the returned value of the fiber's call to `yield`.
|
||||
|
||||
:::dart
|
||||
var fiber = new Fiber {
|
||||
var fiber = Fiber.new {
|
||||
IO.print(Fiber.yield())
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
A first class function—an object that wraps an executable chunk of code.
|
||||
[Here](../functions.html) is a friendly introduction.
|
||||
|
||||
### new **Fn**(function)
|
||||
### Fn.**new**(function)
|
||||
|
||||
Creates a new function from... `function`. Of course, `function` is already a
|
||||
function, so this really just returns the argument. It exists mainly to let you
|
||||
@@ -12,7 +12,7 @@ create a "bare" function when you don't want to immediately pass it as a [block
|
||||
argument](../functions.html#block-arguments) to some other method.
|
||||
|
||||
:::dart
|
||||
var fn = new Fn {
|
||||
var fn = Fn.new {
|
||||
IO.print("The body")
|
||||
}
|
||||
|
||||
@@ -25,15 +25,15 @@ It is a runtime error if `function` is not a function.
|
||||
The number of arguments the function requires.
|
||||
|
||||
:::dart
|
||||
IO.print(new Fn {}.arity) // 0.
|
||||
IO.print(new Fn {|a, b, c| a }.arity) // 3.
|
||||
IO.print(Fn.new {}.arity) // 0.
|
||||
IO.print(Fn.new {|a, b, c| a }.arity) // 3.
|
||||
|
||||
### **call**(args...)
|
||||
|
||||
Invokes the function with the given arguments.
|
||||
|
||||
:::dart
|
||||
var fn = new Fn { |arg|
|
||||
var fn = Fn.new { |arg|
|
||||
IO.print(arg)
|
||||
}
|
||||
|
||||
|
||||
@@ -109,11 +109,11 @@ To force eager evaluation, just call `.toList` on the result.
|
||||
|
||||
### **reduce**(function)
|
||||
|
||||
Reduces the sequence down to a single value. `function` is a function that takes
|
||||
two arguments, the accumulator and sequence item and returns the new accumulator
|
||||
value. The accumulator is initialized from the first item in the sequence. Then,
|
||||
the function is invoked on each remaining item in the sequence, iteratively
|
||||
updating the accumulator.
|
||||
Reduces the sequence down to a single value. `function` is a function that
|
||||
takes two arguments, the accumulator and sequence item and returns the new
|
||||
accumulator value. The accumulator is initialized from the first item in the
|
||||
sequence. Then, the function is invoked on each remaining item in the sequence,
|
||||
iteratively updating the accumulator.
|
||||
|
||||
It is a runtime error to call this on an empty sequence.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user