Có danh sách đầy đủ các ký tự được phép ở đâu đó hoặc quy tắc xác định những gì có thể được sử dụng trong số nhận dạng so với toán tử không?Những ký tự nào được phép cho các toán tử haskell?
Trả lời
Điều tôi đang tìm kiếm là danh sách đầy đủ các ký tự.Dựa trên các câu trả lời khác, danh sách đầy đủ là;
Unicode Punctuation:
- http://www.fileformat.info/info/unicode/category/Pc/list.htm
- http://www.fileformat.info/info/unicode/category/Pd/list.htm
- http://www.fileformat.info/info/unicode/category/Pe/list.htm
- http://www.fileformat.info/info/unicode/category/Pf/list.htm
- http://www.fileformat.info/info/unicode/category/Pi/list.htm
- http://www.fileformat.info/info/unicode/category/Po/list.htm
- http://www.fileformat.info/info/unicode/category/Ps/list.htm
biểu tượng Unicode:
- http://www.fileformat.info/info/unicode/category/Sc/list.htm
- http://www.fileformat.info/info/unicode/category/Sk/list.htm
- http://www.fileformat.info/info/unicode/category/Sm/list.htm
- http://www.fileformat.info/info/unicode/category/So/list.htm
Nhưng trừ các ký tự sau có ý nghĩa đặc biệt trong Haskell:
(),;[]`{}_:"'
ký điều hành được hình thành từ một hoặc nhiều ký tự biểu tượng ...
§2.2 định nghĩa nhân vật biểu tượng như là bất kỳ !#$%&*+./<=>[email protected]\^|-~:
hoặc "bất kỳ [ không ascii] Biểu tượng Unicode hoặc dấu chấm câu ".
Điều thú vị là bạn có thể sử dụng Unicode tùy ý. Vì vậy, ví dụ, λ hoặc ⊗ sẽ là các toán tử Haskell hợp lệ? –
Không, 'λ' là một ký tự Unicode, không phải là ký hiệu Unicode hoặc ký tự dấu chấm câu Unicode. Vì vậy, bạn không thể sử dụng nó như một phần của tên toán tử (nhưng bạn có thể sử dụng nó như một phần của một định danh thông thường). – dave4420
Tôi hy vọng bạn có thể sử dụng '⊗' làm toán tử Haskell, nhưng tôi không biết chắc chắn. – dave4420
Từ haskell report, đây là cú pháp cho các ký hiệu phép:
special -> (|) | , | ; | [ | ] | `| { | }
symbol -> ascSymbol | uniSymbol<special | _ | : | " | '>
ascSymbol -> ! | # | $ | % | & | * | + | . |/| < | = | > | ? | @
\ |^| | | - | ~
uniSymbol -> any Unicode symbol or punctuation
Vì vậy, biểu tượng là biểu tượng ascii hoặc biểu tượng unicode trừ từ những người trong special | _ | : | " | '
, mà được dành riêng (ở đây a | b
có nghĩa là "nó có thể a
hoặc b
"và a<b>
có nghĩa là" có thể là mọi thứ trong a
ngoại trừ b
"). Một vài đoạn văn dưới đây, báo cáo đưa ra định nghĩa hoàn chỉnh cho các nhà khai thác Haskell:
varsym -> (symbol {symbol | :})<reservedop | dashes>
consym -> (: {symbol | :})<reservedop>
reservedop -> .. | : | :: | = | \ | | | <- | -> | @ | ~ | =>
ký tự điều hành được hình thành từ một hoặc nhiều nhân vật biểu tượng, như định nghĩa ở trên, và được giải nghĩa từ vựng phân biệt thành hai không gian tên (Mục 1.4):
- Ký hiệu toán tử bắt đầu bằng dấu hai chấm là hàm tạo.
- Ký hiệu toán tử bắt đầu bằng bất kỳ ký tự nào khác là số nhận dạng thông thường.
Lưu ý rằng dấu hai chấm của chính nó ":", được dành riêng để sử dụng làm công cụ xây dựng danh sách Haskell; điều này làm cho đồng phục xử lý của nó với các phần khác của cú pháp danh sách, chẳng hạn như "[]" và "[a, b]" .
Ngoài cú pháp đặc biệt cho phủ định tiền tố, tất cả các toán tử là , mặc dù mỗi toán tử infix có thể được sử dụng trong phần để thu hút toán tử được áp dụng một phần (xem Phần 3.5). Tất cả các toán tử infix tiêu chuẩn chỉ là các biểu tượng được xác định trước và có thể được phục hồi.
Có lẽ nên trích dẫn báo cáo [haskell2010] (http://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4) thay vì báo cáo haskell98 những ngày này (mặc dù trong trường hợp này họ nói cùng một điều , theo như tôi thấy). –
- 1. Những ký tự nào được cho phép trong thẻ bắt đầu bằng # twitter?
- 2. Những ký tự nào KHÔNG được phép trong các tên trường MongoDB?
- 3. Những ký tự nào được phép trong Khóa Máy ứng dụng của Google?
- 4. Những ký tự nào còn lại cho trang-tokens?
- 5. Ký tự được phép cho số nhận dạng CSS
- 6. Các quy tắc tốt nhất để làm theo những gì các ký tự cho phép trong mật khẩu là gì?
- 7. XSD - làm cách nào để cho phép các phần tử theo bất kỳ thứ tự nào?
- 8. Toán tử concat (++) tùy chỉnh trong haskell
- 9. Các ký tự được cho phép trong thuộc tính 'nội dung CSS'?
- 10. Tính năng Scala nào cho phép toán tử cộng thêm được sử dụng trên Bất kỳ?
- 11. Toán tử Javascript '>' so sánh các ký tự với khoảng trắng như thế nào?
- 12. Làm cách nào để tạo toán tử trong Haskell?
- 13. Có một nghịch đảo của toán tử Haskell $ không?
- 14. PHP chuỗi không cho phép < and > ký tự
- 15. Thế nào là | và^toán tử được sử dụng cho?
- 16. Tại sao toán tử mới được phép trả về * void cho mọi kiểu con trỏ?
- 17. Các ký tự bất thường ngoài $ được cho phép trong số nhận dạng JavaScript là gì?
- 18. Khắc phục cho 'Chuỗi ký tự' - "không được phép trong các nhận xét". ngoại lệ?
- 19. Không cho phép ký tự trong mật khẩu?
- 20. Lỗi LINQtoSQL: Các toán tử trình tự không được hỗ trợ cho loại 'System.String'
- 21. Haskell: lỗi từ vựng trong chuỗi ký tự/ký tự ở ký tự 'i'
- 22. Haskell có cho phép biểu thức cho phép đối sánh nhiều mẫu không?
- 23. Những ký tự nào phải được thoát trong chuỗi truy vấn HTTP?
- 24. :: a -> (a -> b) -> toán tử b (Haskell)
- 25. Toán tử Haskell và chức năng ưu tiên
- 26. Tại sao toán tử <> không được phép cho nguồn dưới 1.7?
- 27. Tại sao R không cho phép toán tử $ trên vectơ nguyên tử?
- 28. Tại sao ORACLE không cho phép các ký tự dòng mới liên tiếp trong các lệnh?
- 29. Thuật toán sắp xếp không cho phép đếm các phần tử
- 30. Regex không cho phép một số ký tự đặc biệt
Được thăng hạng, nhưng với một lời nhắc: ':' * được * cho phép trong các tên toán tử. Nếu đó là ký tự đầu tiên thì toán tử đặt tên cho hàm tạo, nếu không thì nó sẽ đặt tên cho hàm như bình thường. – dave4420
Tôi không biết về điều đó! –
Điều này hoàn toàn điên rồ! Thật tuyệt khi sử dụng bất kỳ ký hiệu Unicode nào có thể, nhưng tiếc là chúng thường rất khó gõ trên bàn phím hiện tại. – Qqwy