Tôi vừa tìm thấy thứ tôi muốn gọi là "quirk" trong F # và muốn biết nó là do thiết kế hay nhầm lẫn và nếu nó được thiết kế thì tại sao lại như thế. .. Nếu bạn viết bất kỳ cụm từ nào trong đó cụm từ đầu tiên lớn hơn cụm từ thứ hai, chuỗi được trả về trống. Một cái nhìn phản xạ cho thấy điều này là do thiết kế, nhưng tôi không thể thực sự tìm thấy một lý do tại sao nó sẽ phải như vậy. Một ví dụ để tái tạo nó là:Dãy A đến B trong đó A> B trong F #
[1..10] |> List.length
[10..1] |> List.length
Việc đầu tiên sẽ in ra 10 trong khi thứ hai sẽ in ra 0. Các thử nghiệm đã được thực hiện trong F # CTP 1.9.6.2.
EDIT: cảm ơn vì đã gợi ý phạm vi, nhưng vẫn có một trường hợp (đó là điều khiến tôi đặt câu hỏi này) sẽ không được đề cập đến. Điều gì xảy ra nếu A và B là các biến và không có biến nào liên tục lớn hơn các biến khác mặc dù chúng luôn khác nhau? Xét rằng biểu thức phạm vi dường như không được tối ưu hóa ở thời gian được biên dịch, có lý do nào tốt cho mã xác định bước (không được chỉ định rõ ràng) trong trường hợp A và B không cho phép các bước phủ định không?
Câu hỏi liên quan đến một số mã có thể quan tâm http://stackoverflow.com/questions/377078/f-floating-point-ranges-are-experimental-and-may-be-deprecated – Benjol