Re[9]: Result objects - все-таки победили Exceptions?
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.01.25 04:05
Оценка:
Здравствуйте, korvin_, Вы писали:

_>Где здесь должно быть указано, что new Foo может вернуть не объект класса Foo, а OutOfMemory? В сигнатуре конструктора Foo? В "сигнатуре" оператора new?

Примерно там же, где сейчас указано, что new Foo может выбросить OutOfMemoryError. То есть — в "сигнатуре" оператора new.

_>Тот же вопрос про StackOverflow: где он должен быть указан? В сигнатуре каждой функции (метода)? Операция () вызов метода автоматически должна его добавлять к каждому методу?

Если идти по строгому пути — то да, в сигнатуре каждой функции.

_>Теперь Haskell. Имеем такой код, например:


_>
_>data Expr
_>  = Val Int
_>  | Add Expr Expr
_>  | Mul Expr Expr
_>  | If Expr Expr Expr

_>eval :: Expr -> Expr
_>eval e = ...

_>expr0 = If (Mul (Val 1) (Val 0))
_>           (Add (Mul (Val 4) (Val 10))
_>                (Val 2))
_>           (Mul (Add (Val 7) (Val 14))
_>                (Val 2))

_>print (eval expr0)) -- Val 42
_>


_>Где тут должено быть указано OutOfMemory?

Хороший вопрос. Надо полагать — везде.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.