syntax - Racket 中柯里函数的占位符参数?

标签 syntax racket currying

我正在尝试做这样的事情,同时坚持核心标准库。

(define (fn m x b) (+ b (* m x)))

((curry fn _ 3 _ ) 2 4) -> (fn 2 3 4)

是否有类似的东西,或者 Racket 社区是否规定了不同的习惯用法,例如命名参数?

最佳答案

有一个标准解决方案,但不在核心库中。只需使用 SRFI 26 中的 cut 宏即可。 :

(require srfi/26)

(define (fn m x b)
  (+ b (* m x)))

((cut fn <> 3 <>) 2 4)
=> 10
(fn 2 3 4)
=> 10

关于syntax - Racket 中柯里函数的占位符参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085261/

相关文章:

sql - SQL 语句的小写或大写

scheme - 如何修复列表中近对总和的错误

lisp - 尾递归函数将元素附加到列表

javascript 函数柯里化(Currying)将默认参数传递给 vue.js 中的外部函数

TypeScript 泛型在 Curried 时不适用于以前的函数,如何?

javascript - 广义 Curry - Javascript

python - iadd 运算符 ( += ) 与简单加法有何不同?

math - 如何在不使其不可读的情况下将数学方程式放入源代码中?

perl - Perl 中的异常有什么问题?

scheme - Racket 方案 - 从流中删除重复的连续字符