- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在任何 APL 方言中,是否有条件函数的符号或众所周知的习语?
我确定我遗漏了一些东西,因为它是一种基本的语言元素。在其他语言中,它被称为条件运算符,但我将在此处避免使用该术语,因为 APL 运算符完全是另一回事。
比如C和 friend 有x ? T : F
LISP 有 (if x T F)
Python 有 T if x else F
等等。
我知道现代 APL 有 :If
和 friend ,但它们是控制程序流程的命令式语句:它们不返回值,不能在表达式中使用,当然也不能应用于 bool 数组。他们完全有不同的目的,这对我来说很好。
我能想出的唯一合适的表达方式是 (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
⌷
想出一个类似的表达方式。 ,但在 bool 数组上惨败。即使我可以,它仍然必须嵌入
⎕IO
或硬编码的 1,就可读性而言更糟。
if
并在我将要编写的每个程序中使用它,是否有任何规范?我是否缺少明显的功能或运算符?
最佳答案
是的,SO 上有 APL 程序员(但不是很多!)。
我认为答案是这方面没有标准。
对于标量解决方案,我使用“pick”:
x⊃f t
f t[x]
关于functional-programming - APL 中的条件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15752895/
如何将任何 Dyalog APL 值转换为可以传递给 ⍎ 的字符向量获得相同的值(value)? 预期如何: x←2 3⍴⍳6 x←1,⊂x x←x,⊂'foo'
有没有办法打开文本编辑器,输入一些 APL 代码,将其保存为文件,然后在 Dyalog 或 MicroAPLX 中打开它以执行代码?或者这就是工作空间? 最佳答案 @Tobia 已经对 APL 给出了
我几周前才开始学习 APL,所以这听起来像是一个新手问题。 让 B是一个字符串,在 APL 术语中可以是标量或向量。如果是标量,⍴B返回 null 而不是我想要的字符串长度。 B←'QR' ⍴B ⍝
在 APL 中进行任意精度(整数)算术的最简单方法是什么? 任何已知的图书馆?或者你应该“内联”操作(以及如何)? 最佳答案 Dyalog APL 在 big 中包含运算符 dfns workspac
我到处寻找一个函数来执行此操作,但给出了一个嵌套向量 A←(5 3 2) (3 9 1) 我想用 B 索引它 B ← 2 1 这样对于 A 中的第一项,将返回第二项。对于 A 的第二项,将返回 3(第
根据http://www.microapl.co.uk/apl/APL1_2.PDF ,¯12和12之间有圆函数。例如,函数1、2和3分别是sin、cos和tan .我在 this reference
APL中是否存在续行符,即表示输入尚未完成并继续解析下一行的字符? 我想要它的原因是输入一个与其形状相似的格式的数组,例如,而不是: Forecast ← 4 6 ⍴ 150 200 100 80 8
大约在 1980 年代我开始使用 APL 时,Jim Weigang 提出了一个将 APL 代码写入文件的音译方案。虽然该方案本身很可靠,但人们可能永远不想用它来编程。我记得的一个音译方案(刚找到它,
我是一名经验丰富的软件工程师,开始研究 APL,为了尽早更好地了解该语言,我想了解为什么该语言向编码人员展示了标量和向量之间的区别。据我所知,在我的学习中,这只会限制灵活性,而不会产生任何好处来弥补它
如何在 APL 中定义普适功能? 我做的是 function←{ (⊃⍣(⍬≡⍴⍵)){the function that apply to scalar}¨⍵ } 我认为应该有更好的方法来做
假设我有一个数组 N ← 0 0 0 1 1 1 0 0 1 , 我如何应用扫描 \实现数组0 0 0 1 2 3 0 0 1 ?+\N给我 0 0 0 1 2 3 3 3 4这不是我想要的。+\¨⊆
我正在尝试开始使用 APL 和任何相关的 IDE、工具、编译器等。我可能需要在本地安装。我也在网上看了APL repl,但是所有的符号似乎都很难打(我什至不知道从哪里开始)。 我想知道我需要安装的任何
我正在尝试学习 APL。以下代码片段来自http://archive.vector.org.uk/art10011550其中指出此代码就像用英语阅读“MUMMY”一样简单! R←((V⍳V)=⍳⍴V)
这是 Dyalog APL 中黄金比例的代码: 1+∘÷⍣=1 我不明白。 “1 加 compose rec 重复等于 1”没有任何意义。 最佳答案 ⍣ 的操作数是 +∘÷(左边)和 =(右边)。它的
我正在使用 Dyalog APL,但我发现某些功能在 gnu-apl 中不可用。这两个 APL 实现与所有其他 APL 实现之间是否有很大差异?最常用的 APL 编译器是什么? 最佳答案 出于所有实际
给定 APL 中的列表,我想检查每个相邻对是否有序。因此,给定 (a0, a1, ..., an),我想计算: (a0 ≤ a1) ∧ (a1 ≤ a2) ∧ .... ∧ (a[n-1] ≤ an)
我需要在 Dyalog APL 中精确工作。我知道 ⎕PP 的值设置了精度,但我无法将其增加到超过 18,因此我无法获得超过 18 位的精度,并且我需要使用大数字进行操作。有什么办法可以提高精度吗?
给定 APL 中的列表,我想检查每个相邻对是否有序。因此,给定 (a0, a1, ..., an),我想计算: (a0 ≤ a1) ∧ (a1 ≤ a2) ∧ .... ∧ (a[n-1] ≤ an)
至少有一种单字母语言(当然是 q)具有用于进程间通信的功能,这是一种在多台计算机上并行执行长时间运行的进程。这些 session 可以在同一台计算机上,也可以在不同大陆的服务器上。 使用 q,我只需启
来自 Java 和 Python 程序员,优雅而强大的 APL 问题解决方案的语法通常冗长令人困惑。我编写的代码可能看起来同样强大,但为了我的理解,我更喜欢具有良好变量名称的变量 block 。哪个是
我是一名优秀的程序员,十分优秀!