Войти
ПрограммированиеФорумОбщее

Проверка существования переменной или функции-члена (6 стр)

Страницы: 1 2 3 4 5 6
#75
8:04, 21 дек. 2008

KpeHDeJIb
>Т.е. вы считаете нормальным тот юнион где пытаются объеденить все известные типы данных в одном?

Не все, а нужные нам.

>Пример с односвязным списком до сих пор не понятен. О чем он должен мне сказать?

О том, что алгебраические типы данных нужны.

>Я всегда делал такой список как List { List *next; T data; } (для учебных целей) или брал std::list.

Случай, когда next == NULL (т.е. собсно конец списка), в твоей реализации явно не определен, а в моей хаскельной -- определен явно. Функции обработки списков тогда легко определить по структурной индукции: Null -- базовый случай, Cons -- индуктивный, и соответственно записать:

foo Null = ....
foo (Cons a x) = ....

Вот продолжение примера про интерпретатор (у нас получился, правда, калькулятор, но не суть важно):

calculate (Literal x) = x
calculate (Add x y) = (calculate x) + (calculate y)

-- теперь можно вычислять выражения, например 2 + 2: calculate (Add (Literal 2) (Literal 2))


#76
14:55, 21 дек. 2008

Doctor Tarr
> в твоей реализации явно не определен,
Т.е. next = NULL этого мало, или что?

> Вот продолжение примера про интерпретатор
А мне казалось можно написать такой парсер и не используя тип "все со всем", или я не прав?

Вобщем я не понимаю что вы пытаетесь доказать подобными примерами.

Правка: А впрочем в редких случаях такое действительно нужно, фиг с вами, тут спорить не буду дальше :)
Но это никакого отношения не имеет к тому что хочет автор, а также никак не умоляет его подхода не только
в С++ но и в PHP. Вобщем я закругляюсь, без толку это все.

Прошло более 9 месяцев
#77
19:59, 25 сен. 2009

пипец пацан спросил простой вопрос и развелась дискуссия на 6 страниц хДД))

Страницы: 1 2 3 4 5 6
ПрограммированиеФорумОбщее

Тема в архиве.