Tôi đang tham gia Lập trình chức năng Coursera trong lớp Scala. Đây là tuần thứ hai và tôi đâm vào tường. Trong bài tập, chúng tôi đang làm việc với Sets, nhưng không phải là loại Set chúng ta gặp trong Java, ví dụ. Nó là một Set trả về true nếu giá trị nằm trong đó và sai khác. Họ nói nó không phải là một container, nó chỉ là một chức năng.Trợ giúp chuyển nhượng: Liên kết giữa các bộ
Để làm rõ, tôi cần sự giúp đỡ của bạn. Tôi không muốn bạn giải quyết bài tập của tôi, nó chỉ là một ví dụ mà tôi muốn có được ý tưởng về những gì tôi nên làm.
/**
* We represent a set by its characteristic function, i.e.
* its `contains` predicate.
*/
type Set = Int => Boolean
/**
* Indicates whether a set contains a given element.
*/
def contains(s: Set, elem: Int): Boolean = s(elem)
/**
* Returns the set of the one given element.
*/
def singletonSet(elem: Int): Set = Set(elem)
/**
* Returns the union of the two given sets,
* the sets of all elements that are in either `s` or `t`.
*/
def union(s: Set, t: Set): Set = ???
Đây là mã. Trong singletonSet
Tôi đoán cách để giải quyết nó là trả lại Set(elem)
, phải không?
Nếu điều đó tốt, làm thế nào tôi có thể làm cho sự kết hợp giữa hai người? Tôi không phải là người mới để lập trình nhưng tôi không thể thấy bất kỳ cách nào để làm điều đó. Vì tôi không nên trả lại một "bộ" số.
Đây là những gì một sinh viên khác đã nói với tôi về các bộ: "Nhưng tất cả" Set "là một hàm lấy Int và trả về một hàm Boolean (Int => Boolean). boolean phù hợp với loại 'Set' "
gì tôi đã cố gắng trong hàm công đoàn là phải có cái gì đó như:.
def union(s: Set, t: Set): Set = (s | t) //value | not a member of Int => Boolean
Bất kỳ trợ giúp sẽ được đánh giá cao :)
Tò mò rằng http://stackoverflow.com/questions/13052735/is-my-understanding-of-below-scala-code-correct về cơ bản là cùng một câu hỏi và nó vẫn mở. IMO cả hai nên được mở vì chúng là câu hỏi hợp lệ. – talonx