File: lambda.t

package info (click to toggle)
nqp 2014.07-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,596 kB
  • ctags: 7,993
  • sloc: ansic: 22,689; java: 20,240; cpp: 4,956; asm: 3,976; perl: 950; python: 267; sh: 245; makefile: 14
file content (20 lines) | stat: -rwxr-xr-x 421 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
puts "1..7"
def make_iterator(n)
    lambda { |incr,desc| n += incr; puts "ok #{n} - #{desc}"}
end

it1 = make_iterator(-1)
it2 = make_iterator(3)

it1.call(2,"iterator 1")
it1.call(1,"iterator 1")
it2.call(0,"iterator 2")
it2.call(1,"iterator 2")
it1.call(3,"iterator 1")

# Ruby 1.9+ style lambda syntax

m = 5
test = ->(desc) {puts "ok #{m+=1} - #{desc}"}
test.call("new lamba syntax");
test.call("new lamba syntax");