7

我一直在学习因子和J语言来实验无点编程。这些语言的基本机制看起来很清楚,但如何处理算法设计却是一种挑战。摆弄无点代码?

对我来说,一个特别的困惑就是应该如何构造代码,以便用不同的参数进行实验。通过这个,我的意思是Mathematica和Matlab非常擅长的东西;你设置了一个算法,然后操纵变量并观察发生了什么。

如何在没有显式变量的情况下做到这一点?也许我在想这一切都是错误的。我应该如何用无点编程来解决这个问题?

回答

9

这里是我找到真正有用的,同时对付拼接模式(在我的情况适用于因子的编程语言)三个重要的建议:

  • 因子代码无情。编写极其小巧的功能:如果堆栈参数超过3-4个,可能会将其分解为更小的部分。
  • 投资你的时间在学习数据流组合器(双,三,劈开,传播,...)。它们允许表达常见的数据流模式,同时消除复杂堆栈混洗的需要。
  • 学习从其他报价构建报价。使用咖喱技术(咖喱,搭配...)从堆栈参数中建立简单的引用,当事情变得太复杂时,使用引号(“炒”字)。它们允许从模式中轻松地构建复杂的嵌套报价,而无需任何堆栈重组。

而作为一个总是,阅读和“步行”到现有的代码。在因素中,探索运行时间并查看事情是如何工作是非常容易的。

对于您的混淆的具体来源,如果您的算法中有很多输入参数,最重要的是要研究如何使用它们。收获数据流模式。您必须真正想到在最小的一组相关参数上“安排”操作的最佳方式。

这是一个相当困难的经历,但它也是真正有收获的成功之一。我们感觉就像之后的人类编译器..

祝你好运!