Przejmuję programowanie funkcjonalne Coursera w klasie Scala. To już drugi tydzień i uderzyłem w ścianę. W zadaniu pracujemy z zestawami, ale nie na przykład z zestawem, który wszyscy spotykamy na przykład w Javie. Jest to zestaw, który zwraca wartość true, jeśli wartość jest tam i false w przeciwnym razie. Mówią, że to nie pojemnik, to tylko funkcja.Pomoc przy przydziale: Związek między zestawami
Aby było jasne, potrzebuję twojej pomocy. Nie chcę, abyś rozwiązał moje zadanie, to tylko przykład, który chcę zrozumieć, co powinienem zrobić.
/**
* 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 = ???
To jest kod. W singletonSet
domyślam się, że sposobem na rozwiązanie jest zwrócenie Set(elem)
, prawda?
Jeśli to dobrze, jak mam utworzyć związek między tymi dwoma? Nie jestem nowy w programowaniu, ale nie widzę sposobu, aby to zrobić. Ponieważ nie powinienem zwracać "zestawu" liczb.
Oto co inny student powiedział mi o zestawach: "Ale wszystko" Set "jest funkcją, która pobiera Int i zwraca wartość logiczną (Int => Boolean) .Każda funkcja, która pobiera Int i zwraca wartość Boolean pasuje typ „Ustaw” "
Co próbowałem w funkcji związkowej jest mieć coś takiego:.
def union(s: Set, t: Set): Set = (s | t) //value | not a member of Int => Boolean
Każda pomoc będzie mile widziane :)
Ciekawe, że http://stackoverflow.com/questions/13052735/is-my-understanding-of-below-scala-code-correct to zasadniczo to samo pytanie, które pozostaje otwarte. IMO powinny być otwarte, ponieważ są to ważne pytania. – talonx