Tôi đang xem hướng dẫn tuyệt vời của Clojure here. Trong một trong những ví dụ nó có mã Clojure dọc theo dòng sau đây:tại sao "(def nguyên âm? (Set" aeiou "))" làm việc?
(def vowel? (set "aeiou"))
này làm cho nguyên âm trở lại đúng với nguyên âm và phụ âm sai cho:
(vowel? (first "abc")) ; => true
(vowel? (first "cba")) ; => false
Tại sao điều này? Tôi giả sử nó có một cái gì đó để làm với dấu hỏi đằng sau tên biến. không thể tìm thấy bất cứ điều gì ngay lập tức trong hướng dẫn ...
Sửa Tôi chỉ nhận ra vowel?
không trả lại đúng hay sai mà là yếu tố bản thân hay không. Xem câu trả lời của riêng tôi.
Nghe có vẻ phù hợp với tôi. Dấu chấm hỏi cho biết nó có thể được sử dụng như một bài kiểm tra. Bạn sẽ thường thấy dấu chấm than trên các hàm có tác dụng phụ. Họ không phải là một phần của ngôn ngữ, họ là những truyền thống lisp (vì vậy bạn biết các chức năng an toàn từ những "nguy hiểm"). – MBCook
Để làm rõ,? và! chỉ là các ký tự như a và b, và bạn có thể sử dụng chúng để đặt tên cho các ký hiệu (như là \, /, *, -, + ...). Có truyền thống để đặt tên một số ký hiệu trong Lisp, nhưng có sự khác biệt nhỏ giữa các phương ngữ. – Svante
ah, cảm ơn @svante! tôi nghĩ có điều gì đó kỳ diệu về "?" :) – Epaga