To była decyzja projektowa w języku. -1jest liczbą, ale jego użycie w tym kontekście nie(-) jest powiązane z funkcją . (Jak wspomina Ackdari w swojej odpowiedzi, to użycie jest związane z funkcją negate.) Istnieje kilka kompromisów, które pozwalają na to:
Nie możesz wziąć prawego wycinka (-)operatora. Jako obejście problemu Haskell udostępnia tę subtractfunkcję.
Nie można zapisać ujemnej liczby całkowitej bez nawiasów, chyba że jest ona na początku przypisania (np. Bezpośrednio po =lub ->). To powoduje błąd analizy:
let x =8*-1
Zamiast tego należy zapisać jako
let x =8*(-1)
Jest to jednak w porządku:
let x =-1*8
Uznano je za rozsądne kompromisy dla projektantów języka.
Specjalna forma oznacza negację prefiksu, jedynego operatora prefiksu w Haskell i jest składnią dla . Operator binarny niekoniecznie odnosi się do definicji w Preludium; może zostać odbity przez system modułów. Jednak unary zawsze będą odnosić się do funkcji zdefiniowanej w Preludium. Nie ma związku między lokalnym znaczeniem operatora a jednoznaczną negacją.-enegate (e)---negate-
@bipll Tak. Problem z odpowiedziami opartymi tylko na linkach nie dotyczy jakości celu linków, ale ryzyko zepsucia linków. Jeśli skopiowałeś w odpowiedniej części raportu, odpowiedź byłaby w porządku.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.