Như một bài tập, tôi đang cố gắng viết bản đồ, thời lượng và bộ lọc làm chức năng giảm.Swift viết bản đồ, độ dài, bộ lọc làm giảm
func map<T>(array: [T], f: (T->T)) -> [T] {
return array.reduce([]) {
(var seed, value) in
seed.append(f(value))
return seed
}
}
func length<T>(array: [T]) -> Int {
return array.reduce(0){ (x,_) in x + 1 }
}
func filter<T>(array: [T], predicate: (T->Bool)) -> [T]{
return array.reduce([]){
(var seed, value) in
if predicate(value){
seed.append(value)
}
return seed
}
}
Đây có phải là cú pháp thanh lịch nhất mà tôi có thể sử dụng để viết lại các hàm đó làm giảm không? Câu hỏi thứ 2: Bản đồ có chức năng f: (T-> T) Về cơ bản loại nói tôi chỉ có thể trả về kiểu T, nhưng nếu hàm tôi viết biến đổi kiểu T thành Bool, hoặc Int ... Làm cách nào để thực hiện việc này? Có vẻ như bản đồ không tồn tại
Muchas gracias, cảm ơn! Chính xác loại phản hồi tôi đang tìm kiếm. Swift là một cảnh quan kỳ lạ ngay từ đầu;) – Seneca
Cảnh quan kỳ lạ đã truyền cảm hứng cho bạn để thử điều này!?! :) – Grimxn
Rõ ràng có tồn tại một cái gì đó giống như đầu dò;) Cách tuyệt vời để có được một số kiến thức cơ bản về nhanh chóng. – Seneca