标签: tacit-programming

如何在J中重构这个?

我对Project Euler#1的新手解决方案

+/((0=3|1+i.1000-1) +. (0=5|1+i.1000-1)) * (1+i.1000-1)
Run Code Online (Sandbox Code Playgroud)

我知道这可以重构,转换成一个函数,我不知道该怎么做,我必须阅读所有的实验来学习它.

refactoring j tacit-programming

2
推荐指数
1
解决办法
333
查看次数

我如何在J中提交io?

我希望能够读取和写入文件等.我该怎么做?

j tacit-programming

2
推荐指数
1
解决办法
250
查看次数

从J表达式系统地提取名词参数

从J中的表达式中提取名词作为参数的系统方法是什么?要清楚,包含两个文字的表达式应该成为一个二元表达式,使用左右参数而不是文字.

我正在尝试学习默认风格,所以如果可以避免,我不想使用命名变量.

一个具体的例子是我制作的简单模具辊模拟器:

   >:?10#6    NB. Roll ten six sided dice.
2 2 6 5 3 6 4 5 4 3
   >:?10#6
2 1 2 4 3 1 3 1 5 4
Run Code Online (Sandbox Code Playgroud)

我想系统地将参数10和6提取到表达式的外部,以便它可以滚动任意数量的任何大小的骰子:

   d =. <new expression here>
   10 d 6  NB. Roll ten six sided dice.
1 6 4 6 6 1 5 2 3 4
   3 d 100  NB. Roll three one hundred sided dice.
7 27 74
Run Code Online (Sandbox Code Playgroud)

随意使用我的示例来说明,但我希望能够遵循任意表达式的过程.

编辑:我刚刚发现使用x和y的引用版本可以使用eg自动转换为默认形式13 : '>:?x#y'.如果有人可以告诉我如何找到13 :我可能能够回答我自己的问题的定义.

refactoring j tacit-programming

2
推荐指数
1
解决办法
136
查看次数

检查 APL 中列表的每个相邻对是否有序(默认编程)

给定 APL 中的列表,我想检查每个相邻对是否按顺序排列。\n因此,给定(a0, a1, ..., an),我想计算:

\n

(a0 \xe2\x89\xa4 a1) \xe2\x88\xa7 (a1 \xe2\x89\xa4 a2) \xe2\x88\xa7 .... \xe2\x88\xa7 (a[n-1] \xe2\x89\xa4 an)

\n

我不想计算等效形式,我想使用默认编程。\n我的解决方案是((\xc2\xaf1\xe2\x86\x93\xe2\x8a\xa2)\xe2\x88\xa7.\xe2\x89\xa4(1\xe2\x86\x93\xe2\x8a\xa2))但它似乎太冗长了。\n有人有任何想法吗?

\n

apl tacit-programming

2
推荐指数
1
解决办法
143
查看次数

如何用三地址码表示二进制逻辑

在三地址码中一个分支只能有一个二元关系运算符,

例如

if x relop y goto L1, where relop is (!=,==,>,>=,<,<=)
Run Code Online (Sandbox Code Playgroud)

以下如何表示为三地址码格式:

j = 0
while(j < 10 || j < 20)
{
    System.out.println(i);
    j++;
}
Run Code Online (Sandbox Code Playgroud)

这是我的解决方案,显然是不正确的:

main:
        j = 1
        sum = 0
L2:
        if j < 10 || j < 20 goto L3
        goto L4
L3:
        mt2 = sum + 1
        sum = mt2
        mt3 = j + 1
        j = mt3
        goto L2
L4:
        sum = 2
Run Code Online (Sandbox Code Playgroud)

compiler-construction parsing tacit-programming

1
推荐指数
1
解决办法
197
查看次数

0
推荐指数
1
解决办法
272
查看次数

如何使用此类签名制作组合器?

我一直试图用这种类型的签名组合一个组合器:

(a -> b -> c) -> (c -> d -> e) -> a -> b -> d -> e
Run Code Online (Sandbox Code Playgroud)

我已经通过Data.Aviary.Birds和我能找到的所有默认编程帮助网站,但无济于事.此外,如果有一个通用的算法来做这些,将非常感激,但不是必要的.

haskell combinators tacit-programming

0
推荐指数
2
解决办法
140
查看次数

如何用无点样式编写这个函数?

如何以无点样式重写以下函数,x完全从定义中删除参数(另外两个可能保留):

between min max x = (min < x) && (x < max)
Run Code Online (Sandbox Code Playgroud)

这不是一项任务,只是一个问题.我不知道该怎么办.我可以把它变成一个lambda函数

between min max = \x -> (min < x) && (x < max)
Run Code Online (Sandbox Code Playgroud)

但这不是没有点的,因为x它仍然存在.请帮忙.

haskell functional-programming pointfree tacit-programming

-12
推荐指数
2
解决办法
334
查看次数