如何在 APL 中使用排名运算符代替each

2024-01-04

I have

dummytxt←'abcdefghijk'
texttoadd←'down'
rfikv←20 30 50

并需要以下输出

 defghijk20down  defghijk30down  defghijk50down 

我可以这样做:

scenv←(¯10↑¨(⊂dummytxt),¨⍕¨rfikv),¨⊂texttoadd

但请帮我写不用每个运算符但使用排名

我使用 Dyalog APL,但请不要使用火车。

谢谢


表达式使用Each, like f¨x,可以表示为Rank as {⊂f⊃⍵}⍤0⊢x(注意是分隔数组右操作数,0来自数组右参数x)。换句话说,在参数的标量上,我们:

  1. 公开标量:⊃⍵
  2. 应用函数:f⊃⍵
  3. 附上结果:⊂f⊃⍵

类似的表达式适用于二元情况,x f¨y,但我们需要:

  1. 公开两个标量:(⊃⍺)(⊃⍵)
  2. 应用函数:(⊃⍺)f(⊃⍵)
  3. 附上结果:⊂(⊃⍺)f(⊃⍵)

这给了我们x{⊂(⊃⍺)f(⊃⍵)}⍤0⊢y。因此我们可以使用Rank建立我们自己的Each允许派生函数的一元和二元应用的运算符:

      Each←{⍺←⊢ ⋄ ⍺ ⍺⍺{×⎕NC'⍺':⊂(⊃⍺)⍺⍺(⊃⍵) ⋄ ⊂⍺⍺⊃⍵}⍤0⊢⍵}
      (¯10↑Each(⊂dummytxt),Each⍕Each rfikv),Each⊂texttoadd
 defghijk20down  defghijk30down  defghijk50down 

或者,我们可以将两个更简单的等价替换为您的表达式:

      (¯10{⊂(⊃⍺)↑(⊃⍵)}⍤0⊢(⊂dummytxt){⊂(⊃⍺),(⊃⍵)}⍤0{⊂⍕⊃⍵}⍤0⊢rfikv){⊂(⊃⍺),(⊃⍵)}⍤0⊂texttoadd
 defghijk20down  defghijk30down  defghijk50down 

请注意,我们正在附上texttoadd所以它变成标量,然后我们使用⍤0解决整个标量,只是再次公开它。相反,我们可以使用⍤0 1说想用整个vector应用该函数时的正确参数,而该函数又不需要公开其正确参数:

      (¯10{⊂(⊃⍺)↑(⊃⍵)}⍤0⊢(⊂dummytxt){⊂(⊃⍺),(⊃⍵)}⍤0{⊂⍕⊃⍵}⍤0⊢rfikv){⊂(⊃⍺),⍵}⍤0 1⊢texttoadd
 defghijk20down  defghijk30down  defghijk50down 

rfikv and ¯10是一个简单的标量,因此公开它们没有任何效果:

      (¯10{⊂⍺↑(⊃⍵)}⍤0⊢(⊂dummytxt){⊂(⊃⍺),(⊃⍵)}⍤0{⊂⍕⍵}⍤0⊢rfikv){⊂(⊃⍺),⍵}⍤0 1⊢texttoadd
 defghijk20down  defghijk30down  defghijk50down 

dummytxt情况与texttoadd上面,但作为左参数,所以我们可以跳过 enclose-disclose 并要求 Rank 使用整个向量左参数;⍤1 0:

      (¯10{⊂⍺↑(⊃⍵)}⍤0⊢dummytxt{⊂⍺,(⊃⍵)}⍤1 0{⊂⍕⍵}⍤0⊢rfikv){⊂(⊃⍺),⍵}⍤0 1⊢texttoadd
 defghijk20down  defghijk30down  defghijk50down 

这与使用通用方法一样简单。然而,如果我们观察到唯一的非标量是rfikv,我们可以治疗dummytxt and texttoadd作为全局常量并将整个事物表达为单个⍤0函数应用在rfikv:

      {⊂(¯10↑dummytxt,⍕⍵),texttoadd}⍤0⊢rfikv
 defghijk20down  defghijk30down  defghijk50down 

当然,Each也可以这样做:

      {(¯10↑dummytxt,⍕⍵),texttoadd}¨rfikv
 defghijk20down  defghijk30down  defghijk50down 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 APL 中使用排名运算符代替each 的相关文章

  • 在 SQL 中,如何生成 5!56 的每种可能的唯一组合?

    我有一个表 元素 其中有一列 数字 类型为 SMALLINT 其中包含数字 1 到 56 如何使用 SQL 语句生成从 1 到 56 的每种可能组合的 5 个数字的唯一集合 在 APL 编程语言 中 一个简单的二元函数 5 56 就可以解决
  • 为购物车项目和产品设置正确的 jpa 映射

    我正在通过一些例子学习jpa 涉及购物车和购物车物品 我将它们定义如下 但不太确定要使用哪个映射 Entity class Product private Long id private String name Entity class C
  • 是否可以在不定义任何关联的情况下映射实体中的字段?

    我在数据库中有以下模式 简化 MainTable ID primary key SOMEFIELD CODE FK1 references OtherTable1 CODE without declared foreign key CODE
  • 是否可以配置 Dozer,以便默认情况下可以通过 setter-/getter 方法直接访问字段

    我必须映射 Java 类的复杂结构 这些类通常不会通过 set get methods 公开其字段 这是给定的并且无法更改 因此映射只能在直接字段访问上执行 Dozer 允许访问各个字段 但我还没有找到一个设置来使其成为一般行为 因此 我不
  • 如何用C++编写3D映射?

    你能告诉我如何编写多维地图吗 对于二维地图 我做了以下操作 map
  • 使用 CSS3 动画的脉动传单标记

    我想在Leaflet http leafletjs com 地图 出于学习目的 我不想使用第三方插件 我使用以下 CSS 代码来创建 脉动 动画 gps ring border 3px solid 999 webkit border rad
  • 存在哪些 JavaScript 对象到对象映射库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在开发一个大型 JavaScript 项目 并且正在努力将传入的 JSON 数据 从后端 映射
  • Rxjs 将 Json 文档中的数组映射到新的数组类型

    我正在 Angular 服务中从 PouchDB 检索文档 该文档以以下格式检索 id segments rev 1 4f0ed65cde23fe724db13bea1ae3bb13 segments name Aerospace name
  • 需要更好的算法来查找 2 组具有最小距离的点之间的映射

    Problem 我有两个重叠的 2D 形状 A 和 B 每个形状具有相同数量的像素 但形状不同 形状的某些部分是重叠的 而每个形状的某些部分是不重叠的 我的目标是将形状 A 中的所有不重叠像素移动到形状 B 中的不重叠像素 由于每个形状中的
  • AWK 关联数组、映射或哈希映射

    假设我有两个文件 文件1 地图 txt 1 178246 2 289789 3 384275 4 869282 文件2 关系 txt 178246 289789 384275 178246 384275 869282 预期结果是 1 2 3
  • 在R中将多边形转换为sf

    使用此处的教程 https www r spatial org r 2018 10 25 ggplot2 sf 2 html https www r spatial org r 2018 10 25 ggplot2 sf 2 html 在名
  • NHibernate 多对一映射:如果父级为 null,则将外键设置为空 Guid 而不是 null

    我想要做的事情确实非常简单 但我似乎无法使用 NHibernate 进行正确的映射 我正在处理一个包含父对象和子对象的数据库 子对象具有对数据类型 Guid 的父对象主键的外键引用 无论如何都很正常 现在数据库的设置方式是外键字段不能为空
  • MySQL:了解映射表

    当为具有多对多关系的业务目录构建类别导航系统时 我知道创建映射表是一个很好的做法 类别表 类别 ID 类别名称 企业表 企业名称 企业名称 品类映射表 BusinessId CategoryId 当我连接类别表和业务表来创建映射表时 这会给
  • 在 iOS 中测量/计算距离

    我需要计算 iOS 中两点之间的距离 我可以保证至少有一部iPhone 4 所以相机的图像质量应该很好 这个想法是使用图片计算到某个点的距离 有一个名为 easyMeasure 的应用程序 它完全可以满足我的需要 我对毕达哥拉斯很满意 但这
  • DTO 到实体映射工具

    我有一个实体类Person及其对应的DTO类PersonDto public class Person Entity public virtual string Name get set public virtual string Phon
  • 使用 Ordnance Survey/Openlayers api 拖动标记

    我创建了一个网站使用 Ordnance Survey 我认为这称为 OpenSpace 生成的基于 OpenLayers 的 api 我已经有了它 因此您可以单击地图来添加标记 然后我希望能够单击标记并将其拖动到地图周围 有没有一种简单的方
  • nHibernate 和 sqlite 映射

    我在使用 sqlite 设置 nHibernate 时遇到了真正的问题 这是 hibernate cfg xml 文件
  • 实体框架,将视图映射到表

    我有一个基本视图 它返回与表相同的列 给出或获取 1 个字段 在我的 DAL 代码中 我返回 MyTableObject 的列表 但在某些情况下 我将调用视图返回相同的数据 但来自不同的源 List
  • 有没有java对象到对象映射的工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 geojson 文件下载到 jupyter 中的 folium 中

    我想要一张欧洲地图 作为 json 文件 这样我就可以使用 geojson 将其作为图层放置在 Folium 地图上 这样我就可以将我的数据集嵌入到其中 以显示欧洲哪个国家的酒精含量最高 我在从 GitHub 获取 json 文件以在 jy

随机推荐

  • ASP.NET 4.5 异步等待和 Response.Redirect

    有什么办法可以重定向Page Load 或任何其他 ASP NET 事件 使用时async await 当然Redirect throws ThreadAbortException但即使我抓住它try catch它最终会出现一个错误页面 如
  • Hadoop - 全局排序平均值以及 MapReduce 中何时发生

    我在用Hadoop 流 JAR for 字数 我想知道我怎样才能得到全局排序 根据SO中另一个问题的回答 我发现当我们使用只需一台减速机我们可以得到全局排序 但在我的结果中numReduceTasks 1 一个减速器 它不是排序的 例如 我
  • 核心数据关系可以有属性吗

    我正在将 MySQL 数据库移植到 Mac OS 应用程序的 Core Data 我的数据库中有两个多对多表 除了包含外键之外 还有一些数据列 是否可以向核心数据中的多对多关系添加属性 对我来说看起来不像 我的后备方法是复制核心数据中的链接
  • 选择每组中具有最大值的行

    在每个主题都有多个观察值的数据集中 对于每个主题 我想选择具有最大值 pt 的行 例如 使用以下数据集 ID lt c 1 1 1 2 2 2 2 3 3 Value lt c 2 3 5 2 5 8 17 3 5 Event lt c 1
  • 当变量调用别名时如何调用别名

    我添加了一个别名 alias anyalias echo kallel 如果我执行 anyalias kallel 它执行echo命令没有任何问题 现在 如果我以这种方式定义一个变量 var anyalias 然后用这样的方式执行 var
  • 是否有更简单的方法使用 ActiveAdmin 创建/选择相关数据?

    假设我有以下模型 class Translation lt ActiveRecord Base has many localizations end class Localization lt ActiveRecord Base belon
  • 访问 Linkedin 私人可播放流的权限 - 500 或 403 错误

    我在使用 Linked In API V2 时遇到了下一个问题 curl X GET header Accet application json header Authorization Bearer
  • 获取iframe的内容

    我正在尝试获取的内容从另一页 另一个页面是另一个网站 我登录了该网站 获取其内容并将其存储在 我如何获取其中的内容进入当前窗口 简短的回答 你做不到 浏览器使用以下限制限制来自不同网站的内容之间的交互同源政策 http en wikiped
  • 如何在flutter中为image.asset添加onClick?

    我在单击时使用了三个图像 这些图像将导航到其他页面 那么我应该如何在这些图像上使用 onClick 我的代码如下 Row children Expanded child Column children
  • 将 spin.js 微调器插入 div 中?

    刚刚发现 spin js 它似乎是一个救星 问题是如何将微调器插入到我的 div 中 我有一个关注按钮 单击该按钮时 我会删除背景图像并当前替换为 loader gif 我怎样才能用 spin js 做同样的事情 我举了一个 jsfiddl
  • ::-ms-thumb 出现在 MS Edge 中的轨道后面

    我创建了一个滑块 In chrome everything is working fine See image below But in MS Edge thumb appears behind track See image below
  • 无法销毁 codeigniter 中的会话

    我想要实现的是一个简单的登录页面 如果用户登录成功 则重定向到主页 否则保留登录页面 我有 1 个名为login 和 1 个型号名为main 当用户单击登录按钮时 将调用login login send
  • 从大字典中替换 DataFrame 中的值的更好方法

    我编写了一些代码 使用字典将 DataFrame 中的值替换为另一个帧中的值 并且它正在工作 但我在一些大文件上使用它 其中字典可能会变得很长 几千双 当我使用这段代码时 它运行速度非常慢 而且在某些地方还出现了内存不足的情况 我有些确信我
  • Box2D 中的 ChainShape

    最近开始学习libgdx 遇到Box2D的CainShape的问题 我的第一个目标是简单地创建一个带有 ChainShape 的盒子 为了实现这一点 我将四个 Vector2 添加到一个数组中 并使用它们创建一个循环 结果取决于数组中的排列
  • Nunit 运行每个测试两次

    我通过 NUnit 运行测试时遇到问题 我不知道为什么 但每个测试运行两次 问题是 在另一台笔记本电脑上 它通常只运行一次 有没有人遇到同样的问题并且知道如何处理 我有同样的问题 就我而言 我同时拥有Visual Studio 扩展 htt
  • 使用 markdown 时如何正确地将多行 xml 片段粘贴到 github wiki

    我正在尝试为我的项目创建一个 github wiki 但我无法将 Spring beans xml 文件中的片段格式化到此 wiki 中 正确的做法是什么 我尝试使用pre tag code但要么它根本不显示 要么它在同一行中显示所有内容
  • 在 Laravel 5 中间件中获取 cookie

    我正在尝试从 Laravel 5 3 中的中间件检索 cookie 但 request gt cookie language 似乎是空的 我猜它只是在中间件运行后设置的 我在某处读到我应该使用 Cookie queued language
  • Qt父机制

    有一个QPushButton in a QWidget click该按钮应该打开另一个QWidget 如下编码 项目 pro QT core gui greaterThan QT MAJOR VERSION 4 QT widgets TAR
  • C 中函数内的函数[重复]

    这个问题在这里已经有答案了 我正在编写与此类似的代码 include
  • 如何在 APL 中使用排名运算符代替each

    I have dummytxt abcdefghijk texttoadd down rfikv 20 30 50 并需要以下输出 defghijk20down defghijk30down defghijk50down 我可以这样做 sc