Considered that I have a procedure (plus x y) witch takes exactly two args. And now I also have a list which contains two objects like (list 1 2). So, if there's any magic way to expand the list as two arguments. We have a dot notion version, but that isn't what i want. I just want to expand the list to make Scheme believe I passed two arguments instead of a list.
Hope those Ruby codes help:
a = [1, 2]
def plus(x,y); x+y; end
plus(*a)
# See that a is an array and the plus method requires
# exactly two arguments, so we use a star operator to
# expand the a as arguments
(apply your-procedure your-list)
This is Scheme's equivalent code:
(define (plus x y)
(+ x y))
(plus 1 2)
=> 3
(define a (list 1 2))
(apply plus a)
=> 3
The "magic" way to expand the list and pass it as arguments to the procedure, is using apply. Read more about it your interpreter's documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With