【发布时间】:2011-09-23 23:43:56
【问题描述】:
我查看了相关的spec section 并猜测了一些尝试,但无法弄清楚。例如,如何使用非轻型语法(在单行上)表达以下轻型语法递归 let 绑定?
let rec f x = g x
and g x = f x
(let rec f x = g x and g x = f x 给我“绑定中的意外关键字'和'。预期在此点或之前的不完整结构化构造或其他标记。”除非我按照@Ramon Snir 的建议关闭轻量级语法,但肯定有一种在轻量语法打开时执行此操作的方法?)
【问题讨论】:
-
这工作正常。 FSI 处理
let rec f x = g x and g x = f x很好(在#light "off"之后)并正确编译。 -
@Karl Knechtel - 更新了我的主要尝试(其他仅包括抛出
in、begin、end和括号。 -
@Ramon Snir - 非常有趣,如果在轻语法打开时没有办法做到这一点,我会感到惊讶。
-
这是 F# 中长期存在的错误,恕我直言。
-
以同样的方式“让 a = 2 让 b = 3”会给你一个解析错误,除非你关闭轻语法。轻量级的语法有时会迫使您进行换行。正如乔恩所说,这个“问题”并不新鲜,我认为没有解决方法(除了插入换行符......毕竟这可能是一件好事)。
标签: f#