gpt4 book ai didi

julia - 还有什么更符合 Julia 语言和哲学的精神?

转载 作者:行者123 更新时间:2023-12-04 10:47:42 26 4
gpt4 key购买 nike

我最近开始在 Julia 中进行编程以用于研究目的。通过它,我开始喜欢这种语法,我积极体验了 SO 社区,现在我正在考虑从其他编程语言移植一些代码。

使用高度计算昂贵的预测模型,将它们全部使用强大的现代语言(如 Julia)会很好。

我想创建一个项目,我想知道我应该如何设计它。我从性能和语言的角度都关心(即:创建模块 - 子模块 - 函数或其他东西会更好吗?使用字典或自定义类型更好吗?)。

我查看了我所在领域的不同 GitHub 项目,但我还没有真正找到一个共同的标准。因此我想知道:Julia 语言和哲学的精神还有什么?

编辑:

有人指出,这个问题可能过于笼统。因此,我想把重点放在如何更好地构建模块(即主函数和子例程的单独模块与模块和子模块等)。我相信这足以让我了解在 Julia 语言和哲学的精神中可以考虑的内容。当然,我们非常欢迎其他示例和引用资料。

最佳答案

你会发现最多的是有一个“官方”style-guide . “朱利安”风格的其余部分定义不明确,但有一些方法可以启发式地定义它。

首先,这意味着围绕多调度和类型系统设计软件。遵循 Julian 设计理念的软件通常不会定义一堆函数,如 test_pumpkintest_pineapple ,而是使用 test 上的调度对于类型 PumpkinPineapple .这允许干净/可理解的代码。它将任务分解为小的类型稳定的函数,从而获得良好的性能。它也可能写得非常笼统,允许用户使用 AbstractArray 的子类型的项目。或 Number ,并利用调度的力量让他们的软件处理他们从未听说过的数字。 (在这方面,当您需要性能时,建议使用自定义类型而不是字典。但是,对于一个类型,您必须在一开始就知道所有字段,这意味着有些事情需要字典。)

遵循 Julian 设计理念的软件也可以实现 DSL(域特定语言),以允许用户使用更简单的界面。与要求用户遵守源自 C/Fortran 的古老标准或编写大量重复项和输入不同,该程序包可以提供宏以允许用户更启发式地定义软件要解决的问题。

作为 Julian 设计理念的一部分的其他项目有很多争论。适当的 Julia 代码是否已去向量化?我会说不,循环融合广播.是编写 MATLAB 风格的“矢量化”代码并让它像去矢量化循环一样执行的强大方法。但是,我看到其他人更喜欢去矢量化的样式。

另请注意,Julia 与 Python 之类的东西非常不同,在 Julia 中,您基本上可以“构建自己的标准做事方式”。由于在包而不是 Base 中声明的函数/类型没有性能损失,因此您可以根据需要构建自己的 Julia 世界,使用宏来定义自己的“类函数”对象等。我的意思是,you can re-create Java styles in Julia if you wanted .

关于julia - 还有什么更符合 Julia 语言和哲学的精神?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39760160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com