Redjik
Джедай-мастер
я вот тоже на пример посмотрел и не понял, при чем тут функицональное программирование, тупо перегрузка =)))И в Java и в C# это легко возможно. Именно такой же записью. Называется перегрузка методов.
я вот тоже на пример посмотрел и не понял, при чем тут функицональное программирование, тупо перегрузка =)))И в Java и в C# это легко возможно. Именно такой же записью. Называется перегрузка методов.
Это и не Generics и не агрегация.Так для этого есть либо generic-и, либо композиция.
class CorruptedActor_P {
public function act(G x) { ... }
public function act(C x) { ... }
public function act(F x) { ... }
public function act(P x) { ... }
}
class CorruptedActor_G {
public function act(C x) { ... }
public function act(F x) { ... }
}
Стрелка, обозначающая "следовательно". Редактора формул нет, я пишу тем, что есть.а что в твоем примере означает оператор ->
В Java именованная семантика, в Haskell -- структурная.какая у тебя семантика работы с типами?
Не понятно, что Вы имеете в виду.какой алгоритм определения набора реализаций по сумме типов?
Сложность -- это субъективно. Я не возражаю. Но то, что в Haskell записывает в строчку, в C++ придётся городить несколькими классами, да ещё в своём коде организовывать наследование. И всё равно, точного совпадения с абстракцией не будет.какие критерии оценки сложности поведенческой семантики?
interface T {}
class G implements T {}
class C implements T {}
class F implements T {}
interface TActorInterface {
public function act(T x);
}
class Actor implements TActorInterface {
public function act(T x) {
return this._act(x);
}
private function _act(G x) { ... }
private function _act(C x) { ... }
private function _act(F x) { ... }
}
У Вас выпадет ошибка статической проверки.Тут что не так?
class P implements T {
}
(new Actor())->act(
new P());
Я просто напомню.Я очень скептически отношусь к duck typing.
Во время PHP 4 что ли, когда не было type hinting?Я однажды попадал с PHP в подобную ситуацию.
хорошо, запишем по-русски:Стрелка, обозначающая "следовательно". Редактора формул нет, я пишу тем, что есть.
А, ты уже тут писал про это на форуме. Ты знаешь много слов, но SRP так и осилил.Нет. С PHP4 я работал, но без ООП.
А с интерфейсами вышло, примерно так: я создал интерфейс в своём пространстве имён, разумеется, а в другом пространстве имён независимо появился другой интерфейс. В интерфейсах имя одного метода совпало. При создании класса-реализации оказалось, что PHP не различает методы из разных интерфейсов, т.е. не использует полностью квалифицированные имена. Пришлось специально договариваться об именовании методов. А имя у метода было как раз типа resolve или render.
Так ты того и хотел, по постановке задачи.У Вас выпадет ошибка статической проверки.
И правильно сделает.