Tại sao loại Tùy chọn Scala không được gọi là Có thể, giống như trong Haskell? [đóng cửa]


13

Tại sao loại Tùy chọn Scala không được gọi là Có thể, giống như trong Haskell?

Có thể làm cho tôi có nhiều "ý nghĩa ngữ nghĩa" hơn, nhưng có lẽ Tùy chọn có hành vi khác mà tôi không biết.

Có bất kỳ lý do cụ thể tại sao Tùy chọn trong Scala không được gọi là Có thể?

Câu trả lời:


23

Scala cũng được lấy cảm hứng từ Ocaml, sử dụng Tùy chọn .

Tùy chọn là loại tiêu chuẩn Ocaml có thể là None(không xác định) hoặc Some xtrong đó x có thể là bất kỳ giá trị nào. Các tùy chọn được sử dụng rộng rãi trong Ocaml để thể hiện các giá trị không xác định (giống như NULL trong C, nhưng theo cách an toàn về loại và bộ nhớ) ...

Tôi nghĩ rằng cái tên được chọn là một vấn đề của hương vị.


8
F # cũng vậy. Trang trên Wikipedia là en.wikipedia.org/wiki/Option_type . Có vẻ là một tên tiêu chuẩn hơnMaybe
KChaloux

2
Ocaml lấy tên từ SML. Nhìn lướt qua Landin 700 Ngôn ngữ lập trình tiếp theo tôi không nhận thấy một loại tùy chọn, vì vậy SML có thể là nguồn gốc của tên.
Peter Taylor

1
Một lập luận ủng hộ Optionlà đó là một optionalgiá trị (bạn có thể nhận được hoặc bạn không nhận được). Maybengụ ý một số mức độ không chắc chắn về phía lập trình viên. Có lẽ có một giá trị? Tôi không biết .. Tôi có nên nhận một giá trị? Theo tôi, từ ngữ này optional valuecó vẻ có chủ ý hơn.
Joool Kuijpers

6

Một câu hỏi tốt hơn ở đây sẽ là tại sao loại tùy chọn của Haskell được gọi Maybe. Loại tùy chọn của ML có lẽ là đại loại của tất cả các loại tùy chọn và được gọi là option.

Trong mọi trường hợp, đây là một câu hỏi thuật ngữ, vì vậy nó sẽ không có câu trả lời nguyên tắc. Những người chọn tên trong Haskell thích nó hơn, đó là nó.


2
Điều gì khiến bạn lặp lại thông tin trong một câu trả lời mới đã được bao phủ đầy đủ bởi câu trả lời được chấp nhận và các nhận xét cơ bản của nó?
Robert Harvey

4
@RobertHarvey ML đã đặt tiền lệ là thông tin mới, vấn đề thực sự là câu trả lời là phỏng đoán ngay cả điều đó.
djechlin

ĐỒNG Ý. Bạn có một tài liệu tham khảo, hoặc một cái gì đó không chỉ là một ý kiến? Bởi vì ý kiến ​​được thể hiện tốt hơn như ý kiến, không phải câu trả lời. Đặc biệt là đoạn thứ hai của bạn.
Robert Harvey

2
Def. Lựa chọn: Hành động lựa chọn; sự lựa chọn Def. Có lẽ; có khả năng; Một sự không chắc chắn; Một câu trả lời không chắc chắn. Đối với tôi đó là không đủ để nói Có lẽ là cái tên tốt hơn nhiều từ quan điểm ngôn ngữ thuần túy. "Tùy chọn" ngụ ý rằng có (nhiều) lựa chọn, trong khi tên đơn điệu "Có thể" có ý nghĩa hơn nhiều: một điều hoặc không có gì. Nhưng vâng, ML (và do đó, Tùy chọn) xuất hiện đầu tiên, vì vậy đó có thể là lý do cho việc đặt tên xấu (và xem bình luận của Peter Taylor cho câu trả lời đúng ở trên - anh ấy tham khảo ML).
fnl

@fnl Xem bình luận của tôi về câu trả lời khác; Tôi nghĩ rằng có một trường hợp hợp lý để làm cho đó optionlà viết tắt cho optional. Trong trường hợp đó, các lựa chọn (nhiều) được giảm xuống chỉ còn hai: có hoặc không.
Joool Kuijpers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.