我一直在学习 Factor 和 J 语言来尝试无点编程。这些语言的基本机制似乎很清楚,但是要了解如何进行算法设计是一个挑战。
对我来说,一个特别的困惑来源是应该如何构造代码,以便轻松地尝试不同的参数。我的意思是 Mathematica 和 Matlab 非常擅长的那种东西。您设置了一个算法,然后操纵变量并观察会发生什么。
如果没有显式变量,你如何做到这一点?也许我在想这一切都是错的。我应该如何在无点编程中解决这个问题?
我一直在学习 Factor 和 J 语言来尝试无点编程。这些语言的基本机制似乎很清楚,但是要了解如何进行算法设计是一个挑战。
对我来说,一个特别的困惑来源是应该如何构造代码,以便轻松地尝试不同的参数。我的意思是 Mathematica 和 Matlab 非常擅长的那种东西。您设置了一个算法,然后操纵变量并观察会发生什么。
如果没有显式变量,你如何做到这一点?也许我在想这一切都是错的。我应该如何在无点编程中解决这个问题?
以下是我发现在处理串联范式时非常有用的三个重要建议(在我的案例中适用于 Factor 编程语言):
和往常一样,阅读并“走进”现有代码。在 Factor 中,很容易探索运行时并查看事情是如何工作的。
对于您的具体混淆来源,如果您的算法中有很多输入参数,最重要的是研究如何使用它们。收集数据流模式。您必须真正考虑在最小的相关参数集上“调度”操作的最佳方式。
这是一次相当艰难的经历,但当它成功时,它也是一种真正的回报。在那之后我们感觉自己像一个人类编译器..
祝你好运!
我在串联编程语言 Joy 和类似 Backus FP 的语言方面有一点经验。关于算法设计,我可以说是非常结构化的算法设计。
如果没有显式变量,你如何做到这一点?
事实上,像 Backus FP 这样的语言中没有全局变量。但是,没有什么可以阻止使用一些受限制的局部变量,例如实例变量。