Tôi đang mã hóa trong SML để phân công và tôi đã thực hiện một số vấn đề về thực hành và tôi cảm thấy như tôi đang thiếu điều gì đó - tôi cảm thấy mình đang sử dụng quá nhiều câu hỏi case
. Dưới đây là những gì tôi đang thực hiện và báo cáo sự cố cho những gì tôi đang gặp sự cố với .:Bản sao kê mẫu và Khớp mẫu
Viết một hàm all_except_option, lấy một chuỗi và một danh sách chuỗi. Trả về NONE nếu chuỗi không có trong danh sách, ngược lại trả về SOME lst trong đó lst giống như danh sách đối số ngoại trừ chuỗi không nằm trong nó.
fun all_except_option(str : string, lst : string list) = case lst of [] => NONE | x::xs => case same_string(x, str) of true => SOME xs | false => case all_except_option(str, xs) of NONE => NONE | SOME y=> SOME (x::y)
Viết một hàm get_substitutions1, trong đó có một danh sách danh sách chuỗi (một danh sách các danh sách các chuỗi, các thay) và một chuỗi s và trả về một danh sách chuỗi. Kết quả có tất cả các chuỗi nằm trong một số danh sách trong các thay thế cũng có s, nhưng chính nó không nên ở trong kết quả.
fun get_substitutions1(lst : string list list, s : string) = case lst of [] => [] | x::xs => case all_except_option(s, x) of NONE => get_substitutions1(xs, s) | SOME y => y @ get_substitutions1(xs, s)
- same_string
là một chức năng cung cấp, fun same_string(s1 : string, s2 : string) = s1 = s2
Đây là một phần của nhiệm vụ cho tuần 2 trong khóa học Ngôn ngữ lập trình Coursera.Vì đó là vi phạm để đăng các giải pháp trực tuyến, tôi yêu cầu câu hỏi này được diễn đạt lại để thay đổi tên hàm để chúng không khớp chính xác với bài tập. – arnab