我正在研究一些F#代码,我正在研究一个函数来从一组字符串中返回一个随机字符串.假设我有这样的事情:
open System
let a = [|"a";"b";"c";"d"|]
let rstring (arr:string[]) =
let r = new Random()
arr.[r.Next(0,3)]
let resultstring = rstring a;;
Run Code Online (Sandbox Code Playgroud)
我的问题是:我对函数式编程概念的理解是,如果给定的函数每次都有相同的输入,它应该总是返回相同的输出.那么在这种特殊情况下每次返回一个不同的字符串"副作用"?我只是好奇.
如果这是一个重复的问题,请指出我原来的,我会关闭它.我不确定用什么搜索字符串来查找与此相关的任何问题.
编辑:感谢大家的所有信息.我似乎把参考透明度和缺乏副作用的概念混为一谈.所以,感谢所有人让我直截了当地感谢你的答案.