纯功能球拍

use*_*657 3 functional-programming purely-functional racket

改变状态的所有 Racket 程序是什么?我正在尝试创建一个副作用尽可能少的程序

所以,我会做这样的事情:

#lang racket/base
(provide (except-out (all-from-out racket/base) set! …more here…))
Run Code Online (Sandbox Code Playgroud)

除了 set 我还应该排除什么!? 是否有所有不纯函数的完整列表?

哦,该程序还使用了#lang racket/gui(据我所知,这主要是不纯的)。所以这可能很棘手......

谢谢你。

soe*_*ard 6

Racket 中没有预先构建的非纯函数列表。如果您只是避免使用任何带有 ! 以名义,你会接近。

请注意,您可以使用可变数据结构并仍然以纯函数方式进行编程 - 只要您不改变它们。