问题标签 [j]

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.

0 投票
1 回答
2943 浏览

macos - 如何在 OS X 上的 emacs 23 中安装新模式?

我刚刚从 SourceForge 下载了 Haskell 和 J 模式,但我无法弄清楚如何使它们与 emacs 23 交互。谷歌搜索产生了 emacs 22 的详细说明,但看​​起来已经进行了一些更改,使其变得困难弄清楚我应该把源文件放在哪里。内部文档似乎比我目前拥有更多的 emacs 内部经验,并且这个问题已经抵制了几天的解决方案。有谁知道如何启动和运行这些模式?

编辑:感谢 Untwisted 提供答案。最终,我真正的问题是:

1)我不知道 .emacs 对 OSX finder 是不可见的,但通过终端可见。

2) 我从来没有想过我可以在 emacs 实例运行时修改 .emacs。

一旦我意识到这些是我的问题,我使用 Cx Cf 打开 ~/.emacs,复制 Untwisted 修复的文本,并修改它以反映我的个人文件路径。之后,一切正常。

0 投票
4 回答
2004 浏览

j - 如何过滤J中的列表?

我目前正在学习迷人的 J 编程语言,但我无法弄清楚的一件事是如何过滤列表。

假设我有任意列表3 2 2 7 7 2 9,我想删除 2s 但保持其他所有内容不变,即我的结果将是3 7 7 9. 我到底该怎么做?

0 投票
2 回答
286 浏览

j - 如何定义一个单子函数来处理 J 中的列表?

假设我有以下 J 表达式:

这计算了 1 到 1000 之间可以被 3 整除的数字的数量。(现在,在有人指出有更简单的方法之前,这个问题是关于J 的语法,而不是数学。)

假设我为此定义了一个单子函数,如下所示:

这适用于单个参数,例如,

如果我传入一个列表,我会收到一个长度错误:

现在,我完全理解了为什么会出现长度错误。当您将列表替换为monad1 2 3的参数时,您会得到:y

如果您对 J 有所了解,就会很清楚为什么会发生长度错误。所以,我不需要解释。

我想定义这个函数,这样当我传递一个列表时,它会返回一个列表,例如,

我怎样才能(a)重新定义这个函数来获取一个列表并返回一个列表,或者(b)让函数按原样在列表上工作而不被重新定义,也许使用一些副词或其他技术?

0 投票
1 回答
140 浏览

tacit-programming - 在 J 中设置用户自定义动词的等级

这是一个计算 J 中数字的数字和的函数:

如果我用b.查询这个动词的等级,我得到_ 1 _,即无穷大。(我们可以忽略二元的情况,因为digitalSum它不是二元的。)

我希望这个动词的一元等级为 0,如b.. 我知道这样做的唯一方法是使用“垫片”,例如,

这很好用,但我想知道这是否是唯一的方法,或者我是否还缺少其他东西。

澄清

我刚刚发现如何更改这样定义的动词的等级:

注意声明"0后的3 : 0. 你可以放任何你想要的副词或连词,它会作为一个整体应用于动词。很酷的东西!

0 投票
3 回答
231 浏览

tacit-programming - 在 J 中抽象盒装数组结构

我一直在研究一个 J 函数,它应该扫描一个列表并将一个元素的连续副本放入单独的连接框中。我的努力已经把我带到了功能

(<;. 2) ((2&(~:/\)),1:)

它测试连续列表条目的不等式,返回布尔值列表,并将列表切割成每次出现数字 1 时结束的框。这是一个示例应用程序:

如果我可以用输入参数中的相应值替换所有这些布尔值,那么任务就完成了。我一直在寻找某种神秘的功能,可以让我做类似的事情

在理想情况下,将有某种方法可以抽象地表示由生成的嵌套模式(<;. 2) ((2&(~:/\)),1:)并将其应用于原始输入列表。(即“这里的装箱数组的第一个元素在深度一装箱,第二个元素在深度一装箱,第三、第四和第五个元素在深度一装箱......,所以把那个未装箱的列表放在那里并以相同的方式将其装箱。”)我尝试使用;., S:, L:,L.&.产生这种行为,但我没有太多运气。是否有某种我缺少的运算符或原则可以使这种情况发生?如果我过度思考整个问题,我不会感到惊讶,但我已经没有想法了。

编辑:

目前,我唯一可行的解​​决方案是这个:

这是一个两步过程,生成列表的游程编码,然后撤消编码而不删除框。由于我最初这样做的目的是使用 J 和 Haskell 一起解决99 个问题,所以如果我通过首先解决问题 12 来解决问题 9,感觉就像在乞求这个问题。

0 投票
3 回答
212 浏览

tacit-programming - 如何在 J 中定义一个动词,将不同的动词交替应用于列表中的每个原子?

想象一下,我在 J 中定义了以下名称:

如下所示:

我想创建一个等级为 1 的一元动词,该动词适用于此列表列表中的每个列表。它将加倍 ( +:) 或将 1 ( >:) 添加到列表中的每个备用项目。如果我们将此动词应用于第一行,我们会得到2 3 6 5 10.

获取与每个项目交替的布尔值列表相当容易,例如,0 1 $~{:$ m给我们0 1 0 1 0。我想,啊哈!+:我将使用`之类的东西,>: @.后跟一些表达式,但我永远无法让它发挥作用。

有什么建议么?

更新

以下似乎可行,但也许它可以被 J pro 重构为更优雅的东西。

0 投票
2 回答
339 浏览

tacit-programming - 如何在 J 中惯用地生成罗兰素数序列?

如果您不熟悉 Rowland 素数序列,可以在此处找到相关信息。我在 J 中创建了一个丑陋的程序单子动词来生成该序列中的前n 个术语,如下所示:

这非常有效,它确实生成了序列中的前n项。(通过n项,我的意思是前n 个 不同的素数。)

这是输出rowland 20

我的问题是,我怎样才能用更惯用的 J 来写这个?我不知道,尽管我确实编写了以下函数来查找数字列表中每个连续数字之间的差异,这是必需的步骤之一。就是这样,尽管它也可能由比我更有经验的 J 程序员重构:

0 投票
1 回答
302 浏览

j - 为什么我在 J 中没有得到 Euler 56 的正确答案?

我已经解决了 84 个 Project Euler 问题,主要是在 Haskell 中。我现在回去尝试在 J 中解决一些我已经在 Haskell 中解决的问题,作为学习 J 的练习。

目前,我正在尝试解决问题 56。让我强调一下,我已经知道正确答案是什么,因为我已经在 Haskell 中解决了它。这是一个非常简单、微不足道的问题。我不会在这里给出答案。

这是我在 J 中的解决方案:

这会产生一个小于预期结果的数字。换句话说,它在某种程度上是错误的。那里有J-ers知道为什么吗?我很困惑,因为它非常简单而且完全是蛮力。

0 投票
1 回答
271 浏览

tacit-programming - 我如何在J中做文件io?

我希望能够读写文件等。我该怎么做?

0 投票
3 回答
687 浏览

tacit-programming - J的一些独特功能是什么?

我来自 C、Fortran、Python、R、Matlab 和一些 Lisp 的背景——我读过一些关于 Haskell 的东西。有哪些用 J 或 APL 家族的其他语言编写的巧妙想法/示例,这些想法/示例是独一无二的,并且没有在更常见的语言中实现?我总是有兴趣找出我错过了什么......