首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以将F#重构为无点样式吗?

可以将F#重构为无点样式吗?
EN

Stack Overflow用户
提问于 2014-07-22 14:24:56
回答 1查看 322关注 0票数 7

在研究与编程相关的主题时,我在lambdabot中遇到了一个用于Haskell的无尖重构工具,并且想知道是否可以将F#重构成一个无点样式?

我不是提倡使用无点样式,而是把它看作是更好地理解函数的一种手段。

注意:焊盘回答了这个问题的早期版本,但是我重新定义了这个问题,因为这个答案对其他学习和使用F#的人来说是有价值的,我不希望因为一些密切的投票而删除这个问题。

注意:仅仅是因为我改变了问题,不要认为答案意味着不能使用F#以无点的方式进行编码。这在很多情况下是可以做到的,但你必须遵守一些限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 15:50:56

短答案

不是的。

长答案

F#中有一些东西使得这样的工具变得不切实际。(1)由于.NET互操作,F#代码经常会产生副作用,当出现副作用时,自动代码转换就变得非常困难。Haskell的情况并非如此;在Haskell中,等式推理要容易得多,您可以在不改变其评估结果的情况下,用右手边重写左手边。(2) F#中的无点编程受价值约束的限制。我不确定您是否能够在不触及此问题的情况下积极地进行代码转换。

我认为,假设F#代码是纯的,在特定情况下不存在值限制,这样我们就可以给用户一些提示,这样就更实用了。用户在评估建议实际上是正确的之后,可以谨慎地应用建议。它更接近于HLint方法,而不是您所提到的方法。FSharpLint在这个方向上增加了一些衬里规则。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24890026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档