6. 1.Ruby in normaly
階乗 n! を計算する
1. Variable
2. Method
3. Number value
4. String
5. Structure
6. Output
7. 2. How to use Ruby without using any
numbers or letters
8. 1. Variable
In the normal case
my_number = 2
Without using letter
Rubyに「 _ 」とか「 $ 」などでVariable
が作られます
my_number = 2
<=>
_ = 2
2. How to use Ruby without using any numbers or letters
9. 2. How to use Ruby without using any numbers or letters
2. Number
pid -> Integer
カレントプロセスのプロセス ID を返します。変数 $$ の値と同じです。
$$の値はいつも != 0
+,-,x,/, <<で任意ナンバーが作られます。
$$ / $$ = 1 $$ - $$ = 0
10. 2. How to use Ruby without using any numbers or letters
2. Number
my_number = 2 は _ = $$ / $$ + $$ / $$ になります。
11. 2. How to use Ruby without using any numbers or letters
3. String
my_string = "basic"
"basic" = "b" << "a" << "s" << "i" << "c"
ASCIIに基づけASCIIコードを使って、Stringが作られます。
"b" << "a" << "s" << "i" << "c" <=> '' << 98 << 97 << 115 <<105 << 99
12. 2. How to use Ruby without using any numbers or letters
3. String
結果:
__ = '' << 98 << 97 << 115 <<105 << 99
13. 2. How to use Ruby without using any numbers or letters
4. Method
メソッドの理想
“package code first, call it later”
Procとほぼ一緒です。
my_proc = Proc.new{|x| x + 1; p x}
... # more code
my_proc.call(2) #=> 3
14. 2. How to use Ruby without using any numbers or letters
4. Method
文字と数字を削除する
_ = $$/$$
___ = Proc.new{|__| __ + _; p __}
... # more code
___.call(_+_) #=> 3
my_proc = Proc.new{|x| x + 1; p x}
... # more code
my_proc.call(2) #=> 3
Proc.newの代わりに、 -> シンボルが作られます。
call使わず、 [] シンボルが作られます。
15. 2. How to use Ruby without using any numbers or letters
4. Method
結果:
_ = $$/$$
___ = -> {|__| __ + _; p __}
... # more code
___.[(_+_)] #=> 3
my_proc = Proc.new{|x| x + 1; p x}
... # more code
my_proc.call(2) #=> 3
ほぼ完了しました。
16. 2. How to use Ruby without using any numbers or letters
5. Structure
どんな言語でも、Structureの種類は3つがあります。
1. Sequence
2. Selection
3. Iteration
17. 2. How to use Ruby without using any numbers or letters
5.1. Sequence
sequenceでは, 普通な実装です。上から下までで実行します。
=> 問題ない。
18. 2. How to use Ruby without using any numbers or letters
5.2. Selection
文字禁止なので、if-esleが使えない。
だが、if-elseの代わりに、?:のシンタックスで置き換えることができます
19. 2. How to use Ruby without using any numbers or letters
5.3. Interation
ループを作るために、再帰とProcシンタックスを兼ねる。。
普段:
(1..10).each do |x|
p x
end
(___ = -> {
x += 1
p x
x <= 10 ? ___[] : 0
})[]
20. 2. How to use Ruby without using any numbers or letters
6. Output
今まで、結果を表示するために、putsのコマンドを作っています。
Rubyに$>シンボルはputsの使い方と同じです。
puts "basic" <=> $> '' << 98 << 97 << 115 <<105 << 99 # => basic