Skip to content

Instantly share code, notes, and snippets.

@muhammadyana
Last active June 8, 2017 04:07
Show Gist options
  • Save muhammadyana/bbb0ced514d2cb861434fc581fec7661 to your computer and use it in GitHub Desktop.
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
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