重新定义 Racket 中的语法以接受四元数

Posted

技术标签:

【中文标题】重新定义 Racket 中的语法以接受四元数【英文标题】:Redefining the syntax in Racket to accept quaternions [duplicate] 【发布时间】:2014-03-26 15:42:42 【问题描述】:

有没有办法重新定义 Racket 顶层的语法以接受四元数,以便将其评估为类似于复数的数据? 我试图让 1+i+j+k 被 REPL 接受。 任何代码示例或相关文档都会非常有帮助。 -编辑 我确实有一个工作的四元数模块和一个可以工作的解析器,但它是一个函数调用。我希望能够输入 9+i-3j+k 并像球拍中的其他数字类型一样自动评估它。

【问题讨论】:

我不精通那里的数学,但这似乎太宽泛了。你需要认真地尝试一下..然后返回错误消息/等 【参考方案1】:

是的,您可以做到这一点,尽管这可能需要大量工作。特别是,您需要定义自己的“阅读器”。

之前你这样做了,但是:你已经在现有系统中实现了四元数吗?添加新阅读器应该是在没有语法扩展的情况下使用四元数之后的最后一步。

【讨论】:

以上是关于重新定义 Racket 中的语法以接受四元数的主要内容,如果未能解决你的问题,请参考以下文章

龙格库塔(Runge-Kutta)法求四元数微分方程

Unity复杂的旋转-欧拉角和四元数

OSG 四元数Quat

在 1 轴上旋转四元数?

四元数及姿态解算 Mahony算法

几何系列四元数的基础