【问题标题】:Identity function (for use in forks, eg)身份功能(例如用于分叉)
【发布时间】:2017-03-29 14:06:19
【问题描述】:

考虑:

(i. 5) */ (i. 5)

产生:

0 0 0  0  0
0 1 2  3  4
0 2 4  6  8
0 3 6  9 12
0 4 8 12 16

是否有一个恒等函数,例如,允许我用 fork 编写该表达式,而无需重复 (i. 5)

编辑

我已经在下面回答了我自己的问题,但很幸运地得到了答案。如果有人可以提供“按功能”或关键字搜索 J 的文档的建议,我将不胜感激。在这种情况下,最好在文档搜索中输入“identity”,并建议使用“Reflexive”运算符。

【问题讨论】:

    标签: j


    【解决方案1】:

    “自反”运算符~,记录在here,正是我正在寻找的:

    */~ i.5
    

    一般情况下(来自上述文档),

    u~ y ↔ y u y . For example, ^~ 3 is 27, and +/~ i. n is an addition table. 
    

    【讨论】:

      【解决方案2】:

      确实,您可以在 fork 中使用 j 的恒等函数来实现您要求的结果。反射副词更简洁,但那不是分叉。

      这是您最初指定的实现:

         ([*/]) i. 5
      0 0 0  0  0
      0 1 2  3  4
      0 2 4  6  8
      0 3 6  9 12
      0 4 8 12 16
      

      Google 搜索 site:jsoftware.com 身份 可能对您有用,因为您已经了解分叉。

      【讨论】:

        【解决方案3】:

        有一条来自 J homepage 的路径(尽管很复杂)以及您偶然发现的近似结果。

        1. 首先在首页的搜索框中输入“身份”
        2. 注意第二个结果提到了一个叫做“table”的东西
        3. 返回搜索框搜索table
        4. 关注链接结果D. Function Tables
        5. 注意副词a8=: ft=: 1 : 'x/~@i.' NB. function table

        诚然,从 A 点到 B 点需要一点运气和坚持,而某种文档搜索将是对 J 的一个受欢迎的补充,特别是因为大多数术语很难使用普通搜索来搜索引擎。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-06
          • 1970-01-01
          • 1970-01-01
          • 2010-12-20
          • 1970-01-01
          • 1970-01-01
          • 2019-01-18
          • 1970-01-01
          相关资源
          最近更新 更多