如何在Scheme 中将符号应用为函数?

发布于 2024-07-25 00:54:00 字数 89 浏览 3 评论 0原文

有没有办法将 '+ 应用于 '( 1 2 3)?

编辑:我想说的是我得到的函数将是一个符号。 有没有办法应用它?

谢谢。

Is there a way I can apply '+ to '( 1 2 3)?

edit: what i am trying to say is that the function i get will be a symbol. Is there a way to apply that?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

甜柠檬 2024-08-01 00:54:00
(apply (eval '+) '(1 2 3))

应该做。

(apply (eval '+) '(1 2 3))

Should do it.

淑女气质 2024-08-01 00:54:00

在 R5RS 中,您需要

(apply (eval '+ (scheme-report-environment 5)) '(1 2 3))

Dr.Scheme 中的“相当大”语言允许:

(apply (eval '+) '(1 2 3))

In R5RS you need

(apply (eval '+ (scheme-report-environment 5)) '(1 2 3))

The "Pretty Big" language in Dr. Scheme allows for:

(apply (eval '+) '(1 2 3))
情归归情 2024-08-01 00:54:00

“申请”怎么样? 使用变量 + 而不是符号 + 。

(apply + '(1 2 3))

R5RS

How about 'apply'? Use the variable + instead of the symbol + .

(apply + '(1 2 3))

R5RS

半步萧音过轻尘 2024-08-01 00:54:00

;; This works the same as funcall in Common Lisp:
(define (funcall fun . args)
  (apply fun args))

(funcall + 1 2 3 4) => 10
(funcall (lambda (a b) (+ a b) 2 3) => 5
(funcall newline) => *prints newline*
(apply newline) => *ERROR*
(apply newline '()) => *prints newline*

顺便说一句,这个“语法突出显示”是怎么回事?


;; This works the same as funcall in Common Lisp:
(define (funcall fun . args)
  (apply fun args))

(funcall + 1 2 3 4) => 10
(funcall (lambda (a b) (+ a b) 2 3) => 5
(funcall newline) => *prints newline*
(apply newline) => *ERROR*
(apply newline '()) => *prints newline*

Btw, what's the deal with this "syntax highlighting" ??

若水微香 2024-08-01 00:54:00

在 Racket 的方案中,它是

#lang scheme

(define ns (make-base-namespace))
(apply (eval '+ ns) '(1 2 3))

In Racket's scheme it would be

#lang scheme

(define ns (make-base-namespace))
(apply (eval '+ ns) '(1 2 3))
铁轨上的流浪者 2024-08-01 00:54:00

“申请”计划怎么样?

(apply + `(1 2 3)) => 6

我希望这就是您所问的:)

How about the scheme "apply"

(apply + `(1 2 3)) => 6

I hope that was what you were asking :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文