将参数从一个可变参数函数传递给另一个

时间:2018-04-13 06:56:32

标签: racket

假设我有一个打开chrome的函数,并提供任意数量的args(urls)

(define (chrome . args)
  (subprocess #f #f #f "/usr/bin/google-chrome" (car args)))

上面我只讨论一个问题。我实际上想要应用所有参数。

Args被创建为列表,但是子进程要求其参数在进程名称之后一次出现一个。如何将args列表扩展为子进程函数。

1 个答案:

答案 0 :(得分:1)

使用apply



#lang racket/base

(define (chrome . args)
  (apply subprocess #f #f #f "/usr/bin/google-chrome-beta" args))

(chrome "https://racket-lang.org" "https://stackoverflow.com")