tôi muốn đạt được một cái gì đó như sau:Bản đồ một mục duy nhất của một bản đồ
(_ : Map[K,Int]).mapKey(k, _ + 1)
Và mapKey
chức năng áp dụng đối số thứ hai của nó (Int => Int
) chỉ với giá trị được lưu trữ dưới k
. Có điều gì đó bên trong lib chuẩn không? Nếu tôi không đặt cược có gì đó trong Scalaz.
Tất nhiên tôi có thể tự viết chức năng này (m.updated(k,f(m(k))
) và đơn giản của nó để làm như vậy. Nhưng tôi đã đi qua vấn đề này nhiều lần, vì vậy có thể nó đã được thực hiện?
Đối Scalaz Tôi tưởng tượng một cái gì đó dọc theo đoạn mã sau:
(m: Map[A,B]).project(k: A).map(f: B => B): Map[A,B]
Bạn muốn điều gì xảy ra nếu phím 'a' không có trong bản đồ? Không có gì đúng? Tôi hỏi vì 'cập nhật' sẽ chèn' (a -> f (m (a)) '... – huynhjl
@huynhjl Đối với trường hợp sử dụng của tôi, tôi có một bản đồ với giá trị mặc định. Không có gì xảy ra, chú ý rằng các giải pháp đơn giản của tôi sẽ thất bại với một ngoại lệ. – ziggystar