什么是clojure的副作用(side effect):
纯函数(Pure Function):输入输出数据流全是显式(Explicit)的。函数与外界交换数据只有参数和返回值。
隐式(Implicit)函数:函数可以通过参数和返回值以外的方式和外界交换数据。eg:修改全局变量,利用I/O读取/输出到文件文件,打印到屏幕等等
借用一个例子,比如open是打开文件的函数,它打开一个文件,然后你可以对文件进行操作,比如open('C:/test.txt'),这个语句的返回值是1或者-1(文件是否存在),这是这个函数的作用,而它的副作用就是打开了一个文件