标签: apl

cybersyn/cyberstride实施的语言是什么?

我知道它是在IBM 360大型机架构上实现的,但是有谁知道特别使用了哪些语言?据推测,其中大部分是在3-4个月内编程和部署的 - 这对任何项目来说都是一个非常快速的转变,更不用说有能力监控整个经济的项目了.我部分地认为它可能已经在APL中实现了,因为IBM 360连接并且因为它似乎很适合快速开发这样一个系统所需的那种抽象.有没有人知道更多事实?

legacy mainframe apl

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

使用scalaz进行开发是否需要类似Unicode/APL的键盘?

可以在没有包含适当Unicode字符的键盘的情况下使用scalaz,或者每个Unicode标识符是否也具有等效的"ASCII"(如果是,是否保证它保持这种方式)?是否有特殊的键盘布局用于scalaz?

什么是最佳做法?直接输入Unicode标识符或使用ASCII替换并使用脚本在提交之前用Unicode替换它们?

unicode scala apl scalaz

8
推荐指数
2
解决办法
447
查看次数

在GitKraken中更改diff字体

我编程APL,并一直在考虑从SourceTree切换到GitKraken.但是,我无法更改差异视图字体.由于字体对于APL非常重要,这是我的举动.

有没有办法在GitKraken中更改字体(和大小)?

这两个官方的hacky答案都是受欢迎的.

SourceTree,使用APL385 Unicode字体,大小为16:
SourceTree截图

GitKraken,使用默认字体:
GitKraken截图

为了比较,这里是Stack Overflow的渲染:

c??chunk
(c1 c2)?{?{(1,1?<\?)??}'::'??}c
c2?#.Strings.deb 2?c2
c2?c2{0???:? ? 0???:?? ? (??),?}1?chunk
c2?¯2??c2,¨??UCS 13 10
r??c1 c2
Run Code Online (Sandbox Code Playgroud)

settings diff fonts apl gitkraken

8
推荐指数
2
解决办法
1926
查看次数

学习J/K/APL

我知道所有3个都是相关的,我已经看到了用J编写的Project Euler中的问题的几个答案,以及一些写的K.我想知道的是,你建议学习哪个,你会建议去哪里关于获取材料学习它?

j apl k tacit-programming

7
推荐指数
2
解决办法
1752
查看次数

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

APL中的条件函数

在任何APL方言中,条件函数是否有符号或众所周知的习语?

我确定我错过了一些东西,因为它是一种基本的语言元素.在其他语言中,它被称为条件运算符,但我会在这里避免使用该术语,因为APL运算符完全是另一回事.

例如C和朋友有x ? T : F
LISP有(if x T F)
Python T if x else F
等等.

我知道现代APL有:If和朋友,但它们是控制程序流的命令性语句:它们不返回值,不能在表达式中使用,当然也不能应用于布尔数组.他们完全有不同的目的,这对我来说很好.

我可以用来做功能选择的唯一合适的表达方式是(F T)[?IO+x],虽然它完成了工作,即使在数组上也不会特别简写或对我来说是可读的:

      ('no' 'yes')[?IO+(?5)?.>(?5)]
no  no  no  no  no
yes no  no  no  no
yes yes no  no  no
yes yes yes no  no
yes yes yes yes no
Run Code Online (Sandbox Code Playgroud)

我试图用小队提出类似的表达方式?,但在布尔阵列上惨遭失败.即使我可以,它仍然必须嵌入?IO或硬编码1,就可读性而言更糟糕.

在我继续定义自己if并在我将要编写的每个程序上使用它之前,有什么经典吗?我错过了一个明显的功能或操作员吗?

(SO上有APL程序员吗?:-)

functional-programming apl conditional-operator

7
推荐指数
4
解决办法
1591
查看次数

APL 中的错误处理

\n我目前正在为一个类开发 APL 程序,并且遇到了错误处理问题。

\n\n

在我制作的函数中,我想检查输入是否是整数。如果不是,我想返回错误消息并且不运行函数的其余部分。到目前为止,我比较它是否等于它本身的下限。如果没有,我不希望该函数运行并希望它停止。如果我输入并给出错误消息,它会起作用,但如果我输入类似or 的内容并仅给出正常错误,则它4.2不起作用。我尝试制作一个 try catch 语句,但是当它进入我的函数时它给了我一个错误。\'A\'\'ABCDEF\':Try

\n\n

这不是我想要的。如果输入是字符或字符串,如何使函数以错误消息结束而不是继续?我知道我可以将整个代码放在 if 块中,但这似乎确实没有必要。

\n\n

我的纯文本代码:

\n\n
 TESTER Q;error\n :If Q\xe2\x89\xa2\xe2\x8c\x8aQ\n     \'Possible\'\n :Else\n     \'Not Possible\'\n :EndIf\n \'Again, Possible\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

作为屏幕截图:

\n\n

截屏

\n

error-handling apl dyalog

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

默认写{(+/3&lt;???6)×100÷?}1000

受到一些 Conor Hoekstra YouTube 视频的启发,我尝试在 APL 中做一些小步骤,并将我的小线条转换为无点样式。但对于这个(1000 个骰子 6 卷中 4、5 或 6 卷的百分比)我无法理解如何在重塑之前消除 omega。

\n

{(+/3<?\xe2\x8d\xb5\xe2\x8d\xb46)\xc3\x97100\xc3\xb7\xe2\x8d\xb5}1000

\n

apl pointfree tacit-programming

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

在 APL 中声明多行函数时出现问题

#!/usr/bin/dyalog -script\n\xe2\x8d\x9d /usr/bin/dyalog is a symlink to /opt/mdyalog/18.0/64/unicode/mapl\n\nfactors\xe2\x86\x90{\xe2\x8e\x95ML \xe2\x8e\x95IO\xe2\x86\x901 \xe2\x8b\x84  \xe2\x8d\xb5{ \xe2\x8d\xb5,(\xe2\x8d\xba\xc3\xb7\xc3\x97/\xe2\x8d\xb5)~1}\xe2\x88\x8a\xe2\x8d\xb5{(0=(\xe2\x8d\xb5*\xe2\x8d\xb3\xe2\x8c\x8a\xe2\x8d\xb5\xe2\x8d\x9f\xe2\x8d\xba)|\xe2\x8d\xba)/\xe2\x8d\xb5}\xc2\xa8\xe2\x8d\xac{nxt\xe2\x86\x90\xe2\x8a\x83\xe2\x8d\xb5 \xe2\x8b\x84 msk\xe2\x86\x900\xe2\x89\xa0nxt|\xe2\x8d\xb5 \xe2\x8b\x84 \xe2\x88\xa7/1\xe2\x86\x93msk:\xe2\x8d\xba,\xe2\x8d\xb5 \xe2\x8b\x84 (\xe2\x8d\xba,nxt)\xe2\x88\x87 msk/\xe2\x8d\xb5}\xe2\x8d\xb5{ (0=\xe2\x8d\xb5|\xe2\x8d\xba)/\xe2\x8d\xb5}2,(1+2\xc3\x97\xe2\x8d\xb3\xe2\x8c\x8a0.5\xc3\x97\xe2\x8d\xb5*\xc3\xb72),\xe2\x8d\xb5}\nfactors 20\n
Run Code Online (Sandbox Code Playgroud)\n

从https://dfns.dyalog.com/c_factors.htm复制\n它的工作原理与示例完全相同,除了我无法将其作为单独的行输入并且必须求助于\xe2\x8b\x84\'s

\n

使用该示例会导致

\n
./.local/src/sandbox/apl/Main.apl                                                                                                                                                                                                     \nSYNTAX ERROR\n factors\xe2\x86\x90{\xe2\x8e\x95ML \xe2\x8e\x95IO\xe2\x86\x901          \xe2\x8d\x9d Prime factors of \xe2\x8d\xb5.\n
Run Code Online (Sandbox Code Playgroud)\n

另一个问题是使用像或 这样]的命令\n使用它们总是会导致]display]box on

\n
./.local/src/sandbox/apl/Main.apl                                                                                                                                                                                                     \n\nVALUE ERROR: Undefined name: \xe2\x8e\x95SE.UCMD\n
Run Code Online (Sandbox Code Playgroud)\n

scripting apl dyalog

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

“最大连续数”问题的“j”表达式是什么?

在论文“数组语言中的组合逻辑和组合器”中,他们给出了 APL 中的解决方案:

\n
      vec \xe2\x86\x90 1 1 0 1 1 1 0 0 0 1\n      \xe2\x8d\x9d split (partition) on zeroes\n      \xe2\x8a\x86\xe2\x8d\xa8vec\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x821 1\xe2\x94\x821 1 1\xe2\x94\x821\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x98\n      \xe2\x8d\x9d size of each sublist\n      \xe2\x89\xa2 \xcc\x88\xe2\x8a\x86\xe2\x8d\xa8vec\n2 3 1\n      \xe2\x8d\x9d max reduction\n      \xe2\x8c\x88/\xe2\x89\xa2\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8vec\n3\n
Run Code Online (Sandbox Code Playgroud)\n

为了清楚起见,他们还指出:

\n
\n

对于那些不读 APL 的人来说,可以翻译最终的最大连续数 APL 解决方案:\nreduce(max, map(length, W(partition, vec)))

\n
\n

那么,如何用 J 表达以下内容呢?

\n
 \xe2\x8c\x88/\xe2\x89\xa2\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8vec\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x8a\x86符号似乎是一个“分区”运算符。目前尚不清楚 J 中是否存在这种情况,但我可能只是错过了它。很好奇上面的表达式在“J”中会是什么。

\n

j apl

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