Tôi đang sử dụng gói FSharpx.Collections khá phổ biến và đặc biệt là loại NonEmptyList.Xác định toán tử cons (: :) cho bộ sưu tập tùy chỉnh
loại này cung cấp các chức năng NonEmptyList.cons
, nhưng tôi muốn sử dụng các nhà điều hành ::
như với bình thường List
, ví dụ: head :: tail
. Vì tail
phải là NonEmptyList<'a>
, không nên có bất kỳ xung đột nào với nhà điều hành ::
của List
.
Tuy nhiên, có vẻ như tôi không thể xác định toán tử. Đây:
let (::) h t = NonEmptyList.cons h t
kết quả trong một lỗi biên dịch:
Unexpected symbol '::' in pattern. Expected ')' or other token.
Tôi biết rằng ::
không phải là khá trong cùng chuyên mục như nhà khai thác khác, nhưng tôi không hoàn toàn hiểu được cách. Vì vậy, tôi đã thử một vài điều ít nhiều ngẫu nhiên, chẳng hạn như thay thế ::
bằng op_cons
và tương tự, mà không thành công.
Tôi có thiếu thứ gì đó không và có cách nào để làm những gì tôi muốn làm không?