Raku mixin 如何与运算符重载配合使用?

2024-06-19

我可以使用一些帮助来确定是否可以通过重载数学运算符来与 mixin 一起使用does (or but)以避免下面的歧义错误......该模块:

unit module Physics::Error;

role Error is export {
        has Real $.abs-error;
    
        method negate {
            ...
        }
    }
    
    multi prefix:<-> ( Error:D $right) is export {
        ...
    }

像这个脚本一样使用...

use Physics::Error;

my $x = 12.5 does Error(0.5);
my $z = -$x;

对 'prefix:(Rat+{Physics::Error::Error})' 的调用不明确;这些签名全部匹配: (老鼠:D \a) (物理::错误::错误:D $对)

我希望我的自定义运算符始终明确获胜,然后让它实现核心操作和错误计算,然后返回 (Rat+{Physics::Error::Error})。

大局是进行数学运算,同时也执行简单的误差计算。


Add an is default你的多重特质:

    multi prefix:<-> ( Error:D $right) is export is default {

也就是说,请注意 jnthn 的评论here https://stackoverflow.com/a/69116330/1077672:

is default确实是最后的手段,即使你可以使用 mixin 方法让它工作,你也会发现结果非常慢,很大程度上是因为 mixin 触发了去优化(从专门的和 JIT 编译的代码中掉出来)口译员)。

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

Raku mixin 如何与运算符重载配合使用? 的相关文章

  • raku 语法的标记不会命中文档的第一次出现,但会命中类似的后续出现

    我想处理希伯来语的整个 Tanach 文件 为此 我选择了 Raku 语言 因为它的一些功能 语法和 unicode 支持 因此 我定义了一些标记来选择相关数据 grammar HEB token TOP
  • 如何重建已下载的编辑过的 Raku 模块?

    我已经安装了 Time Duration 但它的大部分测试都失败了 我希望能够通过我的编辑从本地存储的模块重建模块 我编辑了包含该模块的文件 对应于 Duration pm6 perl6 sources D00C101A0157E3EAC4
  • Perl 6 中的递归正则表达式?

    我一直在试图弄清楚如何在 Perl 6 中执行递归正则表达式 对于一个玩具示例 平衡括号匹配器 它将匹配 inside PCRE https regex101 com r otEKh5 1例子 R Onigmo https rubular
  • 只有“perl6”才能解析 Perl 6 吗?

    有一条 相对 众所周知的 Perl 公理 只有 Perl 可以解析 Perl 我想知道 Perl 6 是否仍然如此 扩大讨论 考虑到 PyPy 最近的更新 我想到了这个问题 Perl 独特的可解析性是否使其无法进行类似的努力 Perl 代码
  • 将嵌入的 Pod 打印为带 termcap 转义的格式化文本

    我正在尝试将嵌入式 Pod 作为 ANSI 文本输出到终端 在 Perl 5 中我可以使用Pod Text Termcap https metacpan org pod Pod Text Termcap use strict use war
  • 使用区域设置来检测是否使用英制单位

    我正在开发一个应用程序 想要以厘米 cm 或英寸 为单位显示长度 有没有办法从区域设置中选择正确的单位 无论如何 我还将输入一个选项 以便用户可以覆盖区域设置 美国 利比里亚和缅甸应使用英制单位 而世界其他国家应使用正常单位 一种方法是将此
  • 从 Native 指针中获取数据

    将数据放入 Perl 6 Native 指针中没什么大不了的 sub memcpy Pointer void source Pointer void destination int32 size is native my Blob blob
  • 如何在Perl6中加载Perl5的Data::Printer?

    我一直在尝试加载 Perl5 模块Data Printer进入 Perl6 但我遇到了困难 我之前问过这个问题 无法使用 Inline Perl5 将 Perl5 模块导入 Perl6 https stackoverflow com que
  • 具有类型约束的无符号“变量”是否可以重新绑定? [复制]

    这个问题在这里已经有答案了 EDIT 关闭以支持https stackoverflow com questions 69231506 what are the rules for re binding 这是我在更清楚地理解我在这个问题中想问
  • 如何在 Raku 中终止线程、停止承诺执行

    我正在寻找等待停止 发送异常 到正在运行的承诺SIGINT 中给出的例子doc https docs perl6 org routine signal Supply sub signal退出整个流程 而不仅仅是一名工人 有人知道如何 杀死
  • 更改 $*DISTRO 值以进行测试

    我需要测试一个功能包括这一行 https github com rakudo rakudo commit 0a2eef8fb0adb24164999a2b71c415fd11fe748a diff 4ce1542a6f014c9a003fe
  • CSS百分比宽度和高度以及分辨率问题

    我需要我的应用程序在多种屏幕分辨率下运行 目前 我已以百分比 而不是像素 px 指定所有尺寸 以便它会自动随屏幕调整大小 对于在我的网页上指定尺寸 哪一个是更可靠的测量单位 像素 或 EM 或百分比 For 响应式网页设计 http web
  • 语法的替代版本无法按照我的意愿工作

    这段代码解析 string如我所愿 usr bin env raku my string q to END aaa bbb this has trailing spaces which I want to keep kjkjsdf kjkd
  • 在采用 ARM 处理器架构的 Android 上安装 Rakudo

    我正在尝试使用 Termux 在采用 armv7l 处理器架构的 Android 上安装 Rakudo 我尝试从源代码编译 但没有成功 然后有人指出了Termux用户没有用 https github com its pointless 和他
  • Perl 6:检查元素是否在列表中的最佳方法是什么?

    假设我有一个大数组 stuff and a thing 我想知道是否 thing is in stuff 在 Perl 6 中做到这一点的最佳方法是什么 我所说的 最好 是指 惯用的 可读的 高性能的 不一定按这个顺序 实际上有两个单独的案
  • 在 Windows 上使用“perl6”命令和 Git Bash

    使用 Windows 我安装了乐道之星 https rakudo org files和 Git 并确保C rakudo bin and C rakudo share perl6 site bin位于我的 Path 环境变量中 现在 输入pe
  • 逗号 IDE 中的“SDK 未设置”

    我正在尝试使用 Comma IDE 进行调试 但遇到了这个问题 9 20 Error running Primera SDK is not set Primera是我创建的配置 大部分使用默认值 我浏览了菜单 但没有找到在哪里可以设置 SD
  • 在 Perl 6 中将正则表达式作为参数传递

    的延续这个问题 https stackoverflow com q 47218587 7730888 而且可能是一个更奇怪的 我可以例如连接两个regexes用一个sub 当然 我明白 如何用regex 下面的代码是完全错误的 但我希望它能
  • 为什么我的一些范围很疯狂?

    我尝试解析范围的常见字符串描述 例如1 9 转化为实际范围 例如1 9 但在包含两位数时经常会得到奇怪的结果 例如 1 10结果为单一值1而不是十个值的列表和11 20给了我四个值 11 10 21 20 其中一半甚至不在预期的数值范围内
  • Raku rebles 和多个类别

    这是以下内容的后续内容 Raku rebless 不再适用于继承类 https stackoverflow com questions 59845201 我试图提出一个更复杂的用例 但无法让代码工作 这个想法是一个 Person 类 其中包

随机推荐

  • Angular 4 在 @ViewChild 上使用 setter

    我有一个演示here https stackblitz com edit angular dgmnlf file app 2Fchild component ts 我正在尝试使用 ngIf 将元素添加到 DOM 后获取该元素的高度 我试图通
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • 构造函数参数与方法参数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这确实是一个非常简单的问题 我希望得到 情况决定 的答案 然而 我想知道人们对将参数传递给构造函数或方法有何想法 我将尝试为我的问题设置背景 p
  • 根据选择值显示/隐藏字段

    我试图根据我选择的字段之一的值显示和隐藏一些表单字段 我希望使用数组来保存每个选择值应该显示的内容和不应该显示的内容 以将我从大量的 switch 语句中拯救出来 但无法弄清楚如何做到这一点 我正在使用 PHP 和 jQuery 任何帮助都
  • ActionBar 下拉微调器项目默认为第一项

    我试图设置默认情况下需要在微调器中选择的项目的索引 但它始终默认为 0 第一项 actionBar setDisplayShowTitleEnabled false actionBar setNavigationMode ActionBar
  • auto、decltype(auto) 和尾随返回类型

    之间有区别吗 template
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • 解释 System.Diagnostics.CodeAnalysis.SuppressMessage

    我在某些应用程序中有这种代码 来自微软 assembly System Diagnostics CodeAnalysis SuppressMessage Microsoft Naming CA1702 CompoundWordsShould
  • 如何从 .bat 运行 .vbs

    创建了一个广泛的批处理脚本程序来处理一些自动文件管理和打印 我需要调用一个 vbs 文件来执行它的 sendkeys 操作 有没有办法在不冻结程序的情况下完成此任务 我试过了START WAIT my vbs并且脚本在进入 vbs 时冻结
  • Visual Studio 中的项目不可信?

    打开最近下载的项目时 Visual Studio 2013 会简短警告您仅打开来自可靠来源的项目 开设项目有哪些风险 项目在编译之前会对您的系统造成任何损害吗 可能会造成什么损害 在实际从 不可信 来源打开项目之前 您应该注意哪些指标 不是
  • 在 aurelia 中使用路由器时如何设置/读取查询字符串?

    使用 aurelia io 框架路由器时 读取和设置查询字符串的首选方法是什么 例如 在网址中 http www myapp com myroute1 s mystate 如何读取和设置 s mystateurl 的一部分 让 aureli
  • 在分配滚动侦听器之前更新滚动顶部会触发滚动事件

    我正在更新scrollTop在我开始监听滚动事件之前的元素 但是 即使添加了滚动事件 也会触发滚动事件after the scrollTop已更新 我注意到如果我把 onscroll分配在一个setTimeout 1 它工作得很好 另请注意
  • Python 和 C# 之间的 IPC

    我想在 Windows 中的 Python 和 C 应用程序之间传递数据 我希望通道是双向的 事实上 我想将一个包含我用 C SharpPcap 捕获的网络数据包数据的结构传递给 Python 应用程序 然后将修改后的数据包发送回 C 程序
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • 为什么 Android 服务在测试时不是单例的?

    当运行大量测试套件时 我注意到我的一个 Android 服务不再是单例的 Android 服务应该是单例的 但是当使用 ServiceTestCase 时 我的引用计数超过 1 在 onCreate 中递增 在 onDestroy 中递减
  • Amazon SNS 仪表板中创建平台应用程序的选项在哪里?

    我在这个页面向 AWS 注册您的移动应用程序 https docs aws amazon com sns latest dg mobile push send register html第一个子主题的第 1 项 标题为 向 AWS 注册您的
  • 围绕二维坐标系中的特定点缩放

    Below is an image my coordinate system 我想做的是 我想开始围绕画布中的特定点进行缩放 缩放工作正常 但我的问题是我不知道如何计算缩放时移动画布的量 请注意 我我没有使用canvas scale 我只是
  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • Raku mixin 如何与运算符重载配合使用?

    我可以使用一些帮助来确定是否可以通过重载数学运算符来与 mixin 一起使用does or but 以避免下面的歧义错误 该模块 unit module Physics Error role Error is export has Real