【问题标题】:Writing APL formulas without parens在没有父母的情况下编写所有公式
【发布时间】:2020-01-27 00:23:54
【问题描述】:

我是 APL 初学者, 如何转换,

不使用括号?

【问题讨论】:

  • 如果您指定您使用的 APL 方言会有所帮助,例如APL2、Dyalog APL、GNU APL、NARS2000等
  • @practronix512 我不确定 stackoverflow 是否支持 LaTeX。除了公式之外,我可以编辑您的问题并上传图片吗?
  • 但我使用了 mathjax 教程说明。 (虽然电话很乏味。)编辑帮助很重要。
  • @practronix512 Stack Exchange 已为特定站点启用了 MathJax,而不是整个网络。 Stack Overflow没有启用了 MathJax。无论如何,你缩进了你的 MathJax 代码,所以它变成了一个代码块。

标签: syntax parentheses apl


【解决方案1】:

如果我正确解释了您的 TeX,您想知道是否可以从中删除括号

      (1÷2)*.5
0.7071067812

这可以使用commute-operator ⍨:

      .5*⍨1÷2
0.7071067812

如果f 是一个二元函数,那么除了写X f Y,你还可以写Y f⍨ X,这样可以增加可读性并有助于避免括号。试试看here

【讨论】:

  • 所以在这种情况下需要括号,如果我们不使用那个不常见的运算符。
  • 好吧,假设如果您想保持可读性,则需要使用括号。如果您接受任意数量的字形,但只能避免括号,那么这也可以做到(我认为 ⊣ 仅在 Dyalog APL 中可用):x*0.5⊣x←1÷2
  • 好吧,总是有x*0.5+0×x←1÷2 :-)
  • 2*¯.5
  • @ngn 我认为 OP 想要一个通用的方法而不是一个具体的答案。帖子中的当前公式也可以大大简化。
【解决方案2】:

这里使用括号()和{},但不在计算结果的公式中,仅在函数中 用于构造函数 {} 并用于获取 () 中的变量数。

  f←{(x y r)←⍵⋄∣-/r×÷x y}
  f 1 2 3
1.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2013-11-15
    • 2015-11-25
    • 2013-12-27
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多