owned this note changed 6 years ago
Linked with GitHub

Special RubyDevMeeting at RubyKaigi 2019

Next meeting

  • 2019/05/22 (Wed) 13:00- @ Pixiv.

Matz's new proposal

New syntax to call a method.

a .. b

# need to add parenthesis
(a..b).each do 
end

# introduce new operator to call a method
a .. b ??? each do
end

a .. b |> each do
end

# elixir
x |> func1 |> func2
func2(func1(x))
# ruby
x |> method1(1) |> method2(2) 👉 y
x |> method1(1) |> method2(2) =| y
x |> method1(1) |> method2(2) ==> y
x |> method1(1) |> method2(2) @> y
x ← method1(1) ← method2(2) |> y
x |>> method1(1) |>> method2(2) |> y
x |> method1(1) |> method2(2) |>> y
x @. method1(1) @. method2(2) |> y
x |> method1(1) |> method2(2) -=> y
x :: method1(1) :: method2(2)
x ::: method1(1) ::: method2(2)
x :: method1 :: method2(2)
x -> method1 -> method2 # like c++
# -> is used for -> x {...}
x -> .method1 -> .method2 -> result

Π = 3.14 # Constant
π = 3.14 # local variable

# Unicode記号は予約語化しておきたい

ℝuby = 3.0 # Constant
令和 = 平成 + 1
x + 1
x |> + 1 # prohibitted
y = x.method1(1).method2(2)
🍣 = Sushi.new







# Haskell: f(g(x)) == f $ g x
a .. b $ each do
end

a .. b $ each -> p @1


a .. b ← each do
end


a..$each {} # ?

Numbered parameters

[[1, 2]].each do |i,| p i end # => 1
[[1, 2]].each do |i| p i end # => [1,2]
4.times do p :1 end 
31.times do p @@1 end 
4.times do p @ end # only 1 arg
5.times do p @0 end 
6.times do p ① end
7.times do p 🍣 end
8.times do p it end # Does anyone use RSpec? :p
9.times do p that end
10.times do p 🍥1 end
11.times do p _1 end # For one argument, maybe _
11.times do eat 🍜 end
12.times do p @1 end
[1, 2, 3].zip([4, 5, 6]).each do @₁ + @₂ end
[1, 2, 3].zip([4, 5, 6]).each do @¹ + @² end
[1, 2, 3].zip([4, 5, 6]).each do $₁ + $₂ end
[1, 2, 3].zip([4, 5, 6]).each do $¹ + $² end

%1とかはだめですかね?(会場より)

3.times do p%1 end  # p(%1) or p.%(1) ?


# hello




Select a repo