2D 语法

  • 2d 语言相关内容

    • 在 8.16 版本中,2d 语言在readtables中安装了#2d 读取器支持,然后链接到紧随 2d 之后指定的另一种语言的读取器。
    • 2d 语法扩展增加了使用二维网格语法的能力,可将 ASCII 艺术网格视为表达式,如一个简单的相等函数示例。

    • 该语法在读取和解析阶段工作,读取阶段将以#2d 开头的内容转换为带括号的表达式,#2dcond 宏会接管并展开为普通条件表达式。
    • 2d 表达式在读取时会变成至少有两个子部分的表达式,第一个是表示顶部单元格行宽度的数字序列,第二个是表示最左列单元格高度的数字序列,其余序列描述单元格内容。

  • 编辑 2D:DrRacket 提供了一些帮助编辑#2d 表达式的快捷键,可查看DrRacket’s keyboard shortcuts
  • 2D Cond:[2dcond](#%28form._%28%28lib._2d%2Fcond..rkt%29._2dcond%29%29 的评估过程是先评估第一行的问题表达式,直到其中一个返回真值,再评估第一列的问题表达式,直到其中一个返回真值,最后评估中间的单元格并返回该单元格中最后一个表达式的结果。
  • 2D Match:[2dmatch](#%28form._%28%28lib._2d%2Fmatch..rkt%29._2dmatch%29%29 的匹配过程是将 col-expr 与表第一列的每个模式匹配,将 row-expr 与行中的每个模式匹配,然后评估相应的 exprs-cell 并返回该单元格中最后一个表达式的值。在左上角单元格中,左表达式为 col-expr,右表达式为 row-expr,若有平局则底部表达式为 col-expr。
  • 2D Tabular:(2dtabular tabular-content)用于构建与给定单元格匹配的表格,若单元格跨越多列,结果表格的相应列表元素为'cont',且单元格不能跨越行,#:style 和 #:sep 直接传递给 tabular,若提供 #:ignore-first-row 关键字,则忽略 2dtabular 表达式的第一行。
  • 2D Readtable:构建一个readtable?,识别#2d 并将其转换为带括号的形式,函数实现make-readtable的功能,/recursive 函数用于处理单元格内容。
  • 2d Lexer:给定一个处理单元格内部词法分析的函数,构造一个[lexer/c](https://download.racket-lang....
  • 2D Direction Chars:提供了解析 2d 语法时查找的字符定义,包括可调整字符、双杠字符、向上字符、向下字符、向左字符和向右字符。
阅读 10
0 条评论