Есть много способов сделать это. Хорошо бы использовать макрос, простая (и, возможно, не совсем правильная) версия которого:
(define-syntax (/> stx)
(syntax-case stx ()
[(_ x)
#'x]
[(_ x f)
#'(f x)]
[(/> x f fs ...)
#'(/> (f x) fs ...)]
[/>
(identifier? #'/>)
#'(λ (x . fns)
(for/fold ([r x]) ([f fns])
(f r)))]))
Теперь, например, (/> x sin cos)
расширен до (cos (sin x))
: нет запуска время на все. Последнее предложение означает, что (apply /> 1 (list sin cos))
будет работать.
Я не уверен, приведенный выше макрос является полностью правильным, особенно последнее предложение.