scheme - 在没有条件的情况下将 Scheme/Racket 中的 bool 值转换为整数?

标签 scheme racket

是否可以在不使用 condif 的情况下在 Racket 中将 bool 值转换为 0 或 1?我该怎么做?

例如,(f true) -> 1(f false) -> 0

编辑:我忘了说我正在使用 intermediate student with lambda

最佳答案

如果您将库函数视为黑盒(if 如果它是在 C 中实现的,则不算数?):

(define (b2i b)
  (cadr (assq b '((#t 1) (#f 0)))) )

(b2i #t)  ;-> 1
(b2i #f)  ;-> 0

关于scheme - 在没有条件的情况下将 Scheme/Racket 中的 bool 值转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768747/

相关文章:

clojure - 为什么Clojure之父说Scheme的true/false坏了?

clojure - 有没有办法在 clojure 中创建一个仅在函数范围内可见的命名函数?

macros - 在 Racket 宏中使用新关键字

scheme - 将 r5rs 文件包含到 Racket 中的另一个文件中

scheme - DrScheme 与 mzscheme : treatment of definitions

scheme - 将函数更改为 CPS 样式

scheme - 为什么STklos没有first,word,sentence,butfirst,last等功能?

variables - 如何更改 Scheme 中的值但仅使用纯函数范式

sorting - 当 `sort!` '在 Guile 的列表中时,项目消失

list - 避免使用集合!进入函数式编程风格算法