You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R6RS语法中<complex r>@记法的定义与溯源问询

关于R6RS中@形式复数语法的详细说明

你提到的<complex r> => .... | <real r> @ <real r>是R6RS(以及更早的Scheme标准)里定义的极坐标形式复数表示语法,我来给你拆解清楚:

1. 语法的核心含义

这个@分隔的两个实数,分别代表复数的模长(第一个数)和辐角(第二个数,单位是弧度)。解释器会自动把它转换成我们更熟悉的直角坐标形式(实部+虚部i),转换公式是:

  • 实部 = 模长 × cos(辐角)
  • 虚部 = 模长 × sin(辐角)

你在MIT-Scheme里计算2@2得到的-.8322936730942848+1.8185948536513634i完全符合这个逻辑:

  • 模长2,辐角2弧度
  • 计算2*cos(2)≈-0.8322936730942848,2*sin(2)≈1.8185948536513634,和结果完全匹配。

2. 语法的来源与标准定义

这个记法确实可以追溯到1985年的R3RS标准——这是Scheme语言早期的核心标准之一,当时就已经把极坐标形式的复数表示纳入了数字语法规范。后续的R4RS、R5RS一直延续了这个规则,R6RS也保留了该语法作为复数的合法表示形式之一。

简单来说,它是Scheme语言标准的原生语法,并非MIT-Scheme的私有扩展,绝大多数符合R3RS及以上标准的Scheme实现(比如Guile、Chicken Scheme等)都支持这个记法。

3. 注意事项

  • 辐角的单位是弧度,不是角度,如果需要用角度转换,得先自行转换成弧度(比如用(* angle (/ pi 180)))
  • 当模长为0时,辐角会被忽略,直接得到0复数

内容的提问来源于stack exchange,提问作者alinsoar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:52:51