使用F#实现纯功能

r00*_*kie 15 f# functional-programming pure-function

是否有可能强迫F#表现得像Haskell这样的纯函数式语言?也许使用一些编译器指令?

PS:因为我来自C/C++背景,我想强迫自己学习函数式编程而不学习Haskell :)

Str*_*ger 11

你不能在F#中强迫这种行为,但正如Brian所说,纪律是你最好的朋友.如不使用mutable,forwhile循环,ref关键字等与纯粹的不可变的数据结构(可识别联合,列表,元组,地图等),也坚持.如果您需要在某个时刻执行IO,请构建您的程序,以便将它们与纯功能代码分开.

不要忘记功能编程就是限制和隔离副作用.

  • "不要忘记功能编程就是限制和隔离副作用." - 或代表他们,所以他们不再在"一边":) (4认同)

Bri*_*ian 10

不,谢谢.你只需要使用纪律.