-
1 votesanswersviews
默认参数中的奇怪行为包括eval函数的parent.frame()
我目前在理解eval函数的行为时遇到了一些问题 - 特别是当没有提供参数时使用的是enclos / third参数/使用了默认参数parent.fame() . name <- function(x){ print(substitute(x)) t <- substitute(x) eval(t, list(a=7), parent.frame()) } z &... -
0 votesanswersviews
用于记录Racket评估步骤和中间值的宏?
作为学习Racket宏系统的练习,我一直在实现基于C++ catch framework的单元测试框架 . 该框架的一个特点是,如果我写这样的支票: CHECK(x == y); // (check x y) 当违反检查时,错误消息将打印出x和y的值,即使使用的宏是完全通用的,不像其他测试框架要求你使用像CHECK_EQUALS,CHECK_GREATER等宏 . 这可以通过一些hackery涉...