Hasty Briefsbeta

双语

On eval in dynamic languages generally and in Racket specifically (2011)

a year ago
  • #programming
  • #Racket
  • #eval
  • `eval`函数是Racket等动态语言的核心,但经验丰富的程序员常因其潜在问题而避免使用
  • `eval`就像用对方可能不懂的语言下达指令,容易导致不可靠的结果
  • `eval`的合理使用场景包括动态生成并传递指令,例如向施工队动态发送作业指导
  • 在Racket中,`eval`与模块命名空间交互,DrRacket会为交互窗口设置命名空间
  • Racket为`eval`设置的默认空命名空间可提醒程序员注意语言上下文
  • 安全考量要求限制`eval`的权限并避免引用混淆
  • Mike Samuel强调应使语言具备可分析性,并限制嵌入式脚本语言的权限
  • Hendrik Boom指出原文存在打字错误,关于`eval`的某个句子缺少'that'