Last active
June 8, 2017 04:07
-
-
Save muhammadyana/bbb0ced514d2cb861434fc581fec7661 to your computer and use it in GitHub Desktop.
same as method, but it can be assign or set like a variable
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
print "Enter value Integer = " | |
int = gets.chomp.to_i | |
print "Enter value string = " | |
string = gets.chomp.to_s | |
def n_times(thing) | |
lambda { | |
|n| | |
thing * n | |
} | |
end | |
p1 = n_times(int) | |
puts p1.call(3) | |
p2 = n_times(string) | |
puts p2.call(3) | |
def power_proc_generator | |
value = 2 | |
lambda { value += value } | |
end | |
power_proc = power_proc_generator | |
power_proc.call | |
int.times do | |
p power_proc.call | |
end | |
puts "--- Space" | |
puts | |
tinggi_badan = [170, 160, 150] | |
tinggi_badan.each { | |
|tinggi| | |
puts "Tinggi badanku #{tinggi}cm." | |
} | |
puts; puts "This is block" | |
blok = proc { | |
|tinggi| | |
puts "Tinggi badanku #{tinggi}cm." | |
} | |
tinggi_badan.each &blok | |
puts; puts "--- lambda" | |
ld = lambda { | |
|tinggi| | |
puts "Tinggi badanku #{tinggi}cm." | |
} | |
# | |
#p ld.class | |
puts "lambda merupakan sebuah instance dari { #{ld.class} }." | |
puts ld.lambda? | |
tinggi_badan.each &ld | |
puts | |
# make method with an argument PROC | |
def kelas_blok(&block) | |
puts "method with argument a PROC #{block.class}" | |
puts "is a block lambda .? #{block.lambda?}" | |
end | |
puts kelas_blok { | |
|tinggi| | |
puts "Tinggi badanku dengan method argument PROC #{tinggi}cm." | |
} | |
puts kelas_blok &(lambda { | |
|tinggi| | |
puts "Tinggi badanku with another #{tinggi}cm." | |
}) | |
# | |
puts kelas_blok &->(tinggi) { | |
puts "Tinggi badanku #{tinggi}cm." | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment