FoldList 类似于 J 中的原语

2024-01-10

Mathematica 有一个内置函数,称为FoldList FoldList函数说明 http://reference.wolfram.com/mathematica/ref/FoldList.html。 J中有类似的原语动词吗?

(我知道 J 有一个^:动词,就像Nest and FixedPoint.)

为了澄清我的问题,J 有二元动词,所以通常u / x1 x2 x3变成x1 u (x2 u x3),其工作方式就像FoldList,顺序相反。

除非该函数u takes y,以不同的形状x. In FoldList有一个初始的x。在 J 中,如果 x3 是一种不同的形状,则必须依赖<将其打包在一起。例如,必须打包和拆包

   [list =. (;/ 3 3 4 3 3 34),(< 1 2)
+-+-+-+-+-+--+---+
|3|3|4|3|3|34|1 2|
+-+-+-+-+-+--+---+

   tf =: 4 : '<((> x) , >y)'


   tf/ list
+----------------+
|1 2 3 3 4 3 3 34|
+----------------+
    tf/\ |. list
+---+------+--------+----------+------------+--------------+----------------+
|1 2|1 2 34|1 2 34 3|1 2 34 3 3|1 2 34 3 3 4|1 2 34 3 3 4 3|1 2 34 3 3 4 3 3|
+---+------+--------+----------+------------+--------------+----------------+

这有点不方便。还有更好的解决方案吗?


u/\非常接近(如果你不介意正确的折叠):

+/\ 1 2 3 4
1 3 6 10

*/\1+i.10
1 2 6 24 120 720 5040 ...

 (+%)/\7#1. NB. continued fraction of phi
 1 2 1.5 1.66667 1.6 1.625 1.61538

edit在您的编辑中:

的前两个元素FoldList are x and f(x,a)。在 J 中,如果您希望它们位于同一个列表中,则这两个必须属于相同的“种类”(形状+类型)。不便来自于 J 的数据结构,而不是缺乏FoldList动词。如果您排除x从列表中,事情变得更容易:

FoldListWithout_x =: 1 : 'u/ each }.<\y'

   ; FoldListWithout_x 1 2 3 4
┌─────┬───────┬─────────┐
│┌─┬─┐│┌─┬─┬─┐│┌─┬─┬─┬─┐│
││1│2│││1│2│3│││1│2│3│4││
│└─┴─┘│└─┴─┴─┘│└─┴─┴─┴─┘│
└─────┴───────┴─────────┘
   >+ FoldListWithout_x 1 2 3 4
3 6 10
   (+%) FoldListWithout_x 7#1
┌─┬───┬───────┬───┬─────┬───────┐
│2│1.5│1.66667│1.6│1.625│1.61538│
└─┴───┴───────┴───┴─────┴───────┘

下一个合乎逻辑的步骤是包含一个盒装的x after进行折叠,但这要么需要更复杂的代码,要么需要具体情况具体分析。例如:

FoldList =: 1 :'({.y) ; u FoldListWithout_x y'
+ FoldList 1 2 3 4
┌─┬─┬─┬──┐
│1│3│6│10│
└─┴─┴─┴──┘
; FoldList 1 2 3 4
┌─┬─────┬───────┬─────────┐
│1│┌─┬─┐│┌─┬─┬─┐│┌─┬─┬─┬─┐│
│ ││1│2│││1│2│3│││1│2│3│4││
│ │└─┴─┘│└─┴─┴─┘│└─┴─┴─┴─┘│
└─┴─────┴───────┴─────────┘

vs

FoldList =: 1 :'(<{.y) ; u FoldListWithout_x y'
+ FoldList 1 2 3 4
┌───┬─┬─┬──┐
│┌─┐│3│6│10│
││1││ │ │  │
│└─┘│ │ │  │
└───┴─┴─┴──┘
; FoldList 1 2 3 4
┌───┬─────┬───────┬─────────┐
│┌─┐│┌─┬─┐│┌─┬─┬─┐│┌─┬─┬─┬─┐│
││1│││1│2│││1│2│3│││1│2│3│4││
│└─┘│└─┴─┘│└─┴─┴─┘│└─┴─┴─┴─┘│
└───┴─────┴───────┴─────────┘
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FoldList 类似于 J 中的原语 的相关文章

  • HTML5(六)preserve and recover

    HTML5 六 preserve and recover 1 save the state of canvas context 2 So we have two method to save and restore the state of
  • 无向图的广度优先遍历和深度优先遍历

    public class MGraph private char vexs 顶点 private int edge 存储边的二维数组 private int arcNum 边的数目 private boolean visited 访问标志数
  • 一个例子告诉你什么是封装,继承和多态(C++ 代码实例) (一)

    add by WJB date 2018 08 30 面向对象的三大特性 封装 继承和多态 封装 将事物拥有的属性和动作隐藏起来 只保留特定的方法与外界联系 继承 子类可以拥有父类的属性和方法 多态 以说是 一个接口 多种实现 或者说是父类
  • java常见笔试题目

    1 下列那一行代码编译后不会出现警告或错误 1 char c a 2 byte b 257 3 boolean b null 4 int i 10 5 float f 1 3 2 下面这段代码编译时会发生什么情况 public class
  • 自制Web桌面日历

    想要一个带农历的桌面日历 google了半天也没有找到中意的 但是经常浏览网站的时候发现很多不错的日历 直接保存到我的桌面上不就完了吗 下面是具体操作 将中意的日历页面 查看源文件 看是否可以看到script文件 如果可以 就保存到本地 用
  • xml 文档树

    xml 文档树 XML documents form a tree structure that starts at the root and branches to the leaves XML 文档树起始于 根元素 并以此为基础扩展文档
  • 不仅仅好看!30个优秀logo的设计思想分析

    拥有一个抢眼的Logo对企业来乃一大幸事 毕竟Logo千千万 但真正让人过目不忘的作品可是屈指可数 好的Logo必须量体裁衣 迅速传递出企业的价值和理念 本文里精选了30个经典的标志设计 并附上设计思想分析 相信会对你受益匪浅 Castle
  • 51信用卡管家app产品需求文档

    文章通过使用 体验 研究等方式倒推51信用卡管家APP 通过使用axure撰写PRD文档 51信用卡业务很多 文章只撰写部分核心功能点 另外 51信用卡通过和第三方合作 开展了账单导入 办信用卡 借款 投资理财等业务 文中如有相关错误 望指
  • ztree异步加载

    1 配置好参数 var setting ztreeSetting view showIcon false 前面文件夹显示状态 data key name MC 数据结构的属性由name改成MC async enable true url u
  • 求数组中连续n个元素使其和最大

    给定一个数组 求出数组中连续的一些元素使其和的值最大 如果所有元素都为正数 显然整个数组即为所求的 如果所有元素的值为负数 则所求的最大值为0 这是在编程珠玑上看到的 其时间复杂度由O n3 减为O n 了 public class Max
  • MD5 JavaCript调用法

    JS代码 code
  • 如何列出J中动词的代码

    在控制台中 输入不带参数的单个动词将打印其内容 tolower 3 0 x I 26 gt n 65 i 26 a i t y y x n 97 i 26 a x t 这对于开发来说很好 但在执行过程中无法利用 有没有办法动态地做到这一点
  • 修改数组的一行

    我刚刚开始学习J 有些东西我不知道如何正确做 例如 假设我想打印 2 个符号的棋盘 baba abab baba 为此 我假设您可以生成一个数组 baba baba baba 并反转第二行 生成数组很简单 3 4 ba 但倒车第二排是我挣扎
  • J 中的笛卡尔积

    我正在尝试重现 J 中生命游戏功能的 APL 代码 搜索 APL 中的生命游戏 后可以找到解释此代码的 YouTube 视频 目前我有一个矩阵R这是 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0
  • FoldList 类似于 J 中的原语

    Mathematica 有一个内置函数 称为FoldList FoldList函数说明 http reference wolfram com mathematica ref FoldList html J中有类似的原语动词吗 我知道 J 有
  • 我可以将 vjslib.dll 放入应用程序的 /bin 目录中吗?

    我正在进行生产部署 不幸的是 我正在部署到一个严格控制的环境 今晚我不太可能获得运行完整 Visual J 可再发行 EXE 的许可 我们的应用程序当前抛出错误 表示找不到程序集 vjslib dll 我可以将其放入应用程序的垃圾箱中 然后
  • 如何在 Excel 宏中使用 JavaScript?

    Google 托管了一个非常酷的 diff 类 http code google com p google diff match patch http code google com p google diff match patch 我之
  • 比较 .NET 中的两个字节数组

    我怎样才能快速做到这一点 当然我可以这样做 static bool ByteArrayCompare byte a1 byte a2 if a1 Length a2 Length return false for int i 0 i
  • 将副词应用于动名词列表

    考虑一个动名词列表和一些我们希望循环应用它们的数据 ms NB list of gerunds d 3 4 5 6 NB some data 我们可以做的 ms d NB returns 9 ie the result of 3 4 5 6
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L

随机推荐