Possibly wrong pattern for `union-type-case-data` in spec
- Ngôn ngữ chính
- TeX
- Star
- 311
- Fork
- 291
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
On a page 139 (8. Type definition) possible union cases listed as follow:
```
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident : uncurried-sig --n-ary union case
uncurried-sig :=
args-spec -> type
args-spec :=
arg-spec * ... * arg-spec
```
But this one doesn't compile:
```
type Test =
| A
| B of int*int
| C : int->int
```
with error:
> Return types of union cases must be identical to the type being defined, up to abbreviations
> This construct is deprecated: it is only for use in the F# library
But this one is correct:
```
type Test =
| A
| B of int*int
| C of (int->int) //parentheses are required
```
So probably `union-type-case-data` should look like:
```
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident of (uncurried-sig) --n-ary union case
```
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách xác định mã nguồn của trang 139 trong phần định nghĩa kiểu, rồi so sánh ngữ pháp union-type-case-data được tài liệu hóa với các ví dụ biên dịch thành công và thất bại trong issue. Cập nhật ngữ pháp để trường hợp kiểu hàm khớp với cú pháp bắt buộc, sau đó xác minh rằng đặc tả được kết xuất phản ánh phần sửa đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- fsharp
- Lĩnh vực
- documentation
- Loại issue
- Tài liệu
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 55/100