问题标签 [tacit-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - Rust 是否可以进行隐性编程?
一些默认编程的 Haskell 习语可以翻译成 Rust 吗?
recursion - 在 J 中创建递归默认函数
我是 J 的新手,我一直在尝试创建一个斐波那契函数作为练习(始终是我在学习语言时创建的第二个函数)。我只是无法弄清楚我这样做的方式到底出了什么问题。我试图将其定义为默认,但如果参数大于 1,它就会挂起。
我也尝试过明确地创建它,并且效果很好。
我试图通过将 3 替换为 13 来创建一种默契,但它引发了错误。
所以,我要求有人解释我在这里做错了什么。
j - J: Gauss-Jordan 消元法
对求解线性代数方程组的 Gauss-Jordan 方法进行编码的任务是我在学习 J 时选择的一项练习。系统是Ax=b,其中A是n × n矩阵,b和未知x是n -向量。首先,我从最简单的控制结构形式开始:
正确的!接下来我决定摆脱尽可能多的控制结构:
好的,现在我可以尝试将for_r.
-loop 翻译成默认形式......但它似乎看起来会更麻烦,我认为我走错路了——但是没有错误的学习是什么?我真的很想将 Gauss-Jordan 方法默认编码为:
- J编码练习
- 看看性能是否更好
- 几周后尝试理解代码:)
请帮我把它写到最后或指出更好的方法。
operators - J:牛顿方法的默示副词
我在'addons/math/misc/brent.ijs'
Brent 方法的实现中发现了一个副词。我也想建立一个牛顿法作为副词,但这比建立默示动词要困难得多。
这是牛顿迭代的显式版本:
有了这样的用法:
当然,为了方便起见:
什么是默认等价物?
arrays - J:列表项之间的符号更改次数
的项目a
是_1
或1
。
有 3 个符号变化a
:
我如何无循环地计算它们?
f# - 为什么这个无点 F# 函数的行为与非无点版本不同?
考虑以下 F#:-
在我看来,功能getValFromMapPartial
和是相同的。getValFromMapPartialAndTacit
F# 说它们具有完全相同的类型:(string -> int)
. 然而它们的行为非常不同,它们的编译方式也非常不同。使用 dotPeek 进行反编译,我看到这getValFromMapPartial
是一个方法,而getValFromMapPartialAndTacit
它是一个在 ctor 中初始化的字段。
F# 不会抱怨getValFromMapPartialAndTacit
,即使在最高警告级别(在 VS 2012 和 2013 中)。然而在我上面的示例中调用这个函数失败了,大概是因为它已经包装了初始的空版本someMap
,尽管它是可变的。
为什么这两个功能有区别?F# 是否应该警告默认/无点版本可能会失败?
f# - 为什么模块与类中相同 F# 函数的类型签名之间存在差异?
与我的问题密切相关,但实际上是一个不同的问题......
考虑以下 F#:-
在类案例和模块案例中,getValFromMapPartial
行为getValFromMapPartialAndTacit
方式非常不同,并且编译为 IL 的方式也不同。在类和模块的情况下,前者表现得像一个真正的句法函数,而后者表现得像一个 lambda 计算函数(感谢用户 Marc Sigrist,我知道这一点)。
在模块情况下,类型签名似乎是正确的:-
但是在类的情况下,类型签名是相同的:-
为什么会这样?
既然getValFromMapPartial
在这两种情况下都充当真正的句法函数,为什么在类情况下它会被键入为 lambda 计算函数?
refactoring - 从 J 表达式中系统地提取名词参数
从 J 中的表达式中提取名词作为参数的系统方法是什么?需要明确的是,包含两个文字的表达式应该成为使用左右参数而不是文字的二元表达式。
我正在尝试学习默认风格,所以如果可以避免的话,我不喜欢使用命名变量。
一个具体的例子是我制作的一个简单的掷骰子模拟器:
我想系统地将参数 10 和 6 提取到表达式的外部,以便它可以滚动任意数量的任意大小的骰子:
随意使用我的示例进行说明,但我希望能够遵循任意表达式的过程。
编辑:我刚刚发现使用 x 和 y 引用的版本可以使用 eg 自动转换为默认形式13 : '>:?x#y'
。如果有人可以告诉我如何找到我的定义,13 :
我也许可以回答我自己的问题。
j - J 默契词评价
为什么2(*i.)5
评价为0 2 4 6 8
?
很明显,2*i.5
确实如此,但是()
创建了一个钩子并从右到左进行评估,似乎我们得到了
和 2 不会对该列表采取行动 - 那么我哪里出错了?
implicit - J 中隐性编程的优点/缺点
作为 JI 的初学者,经常会遇到与更熟悉的显式形式相比显得相当拜占庭式的默认程序。
现在,仅仅因为我发现很难解释并不意味着默认形式是错误的或错误的。很多时候,默认形式比显式形式要短得多,因此更容易在视觉上一次看到所有内容。
向专家提问:这些隐性形式是否传达了更好的结构感,并可能提炼出潜在的计算机制?还有其他好处吗?
我希望答案是肯定的,并且对于一些不平凡的例子来说是正确的......