Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 215 216 [217] 218 219 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#3241
,
|
|
|
|
Брр... Ты валишь в одну кучу реализацию и теорию. Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств. Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты. Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell. |
|
Сообщ.
#3242
,
|
|
|
|
Цитата korvin @ затем, что весь юниксовый шелл по сути работа с неизвестными объектами -- разбор текстового IO И часто ты путал номера аргументов в awk'е? И нахрена это в высокоуровневый ЯП тащить? |
|
Сообщ.
#3243
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Описывают. А в ОО-мире алгебраические типы данных вполне можно рассматривать как абстрактный класс + фиксированный(или нет) набор конкретных классов. нет. нельзя, т.к. класс сам по себе не предоставляет должной абстракции. для алг. типов набор конструкторов строго фиксирован В scala у класса один конструктор(при необходимости можно ввести дополнительный конструктор, но не для case-класса). Цитата затем, что весь юниксовый шелл по сути работа с неизвестными объектами -- разбор текстового IO Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает? |
|
Сообщ.
#3244
,
|
|
|
|
Цитата D_KEY @ Брр... Ты валишь в одну кучу реализацию и теорию. Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств. Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты. Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell. нет, не валю, а ты похоже путаешь CS и теорию множеств =) Добавлено Цитата D_KEY @ В scala у класса один конструктор(при необходимости можно ввести дополнительный конструктор, но не для case-класса). я не понял к чему ты это Добавлено Цитата D_KEY @ Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает? при том, что удачный парсинг == подтверждение реализации объектом интерфейса. |
|
Сообщ.
#3245
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Брр... Ты валишь в одну кучу реализацию и теорию. Алгебраические типы данных - дизъюнктивное объединение декартовых произведений множеств. Для задания АТД и работы с ними вводят конструкторы, части, селекторы, предикаты. Все остальное - вопрос реализации. И реализация в scala ничем не уступает реализации в haskell. нет, не валю, а ты похоже путаешь CS и теорию множеств =) Валишь. Даже по твоей ссылке подтверждения твоим словам нет. |
|
Сообщ.
#3246
,
|
|
|
|
Цитата Мяут-Настоящий @ И часто ты путал номера аргументов в awk'е? И нахрена это в высокоуровневый ЯП тащить? не понял при чем тут путание аргументов в awk, но попробуй мыслить абстрактно |
|
Сообщ.
#3247
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Причем тут это? И как ты собираешься у текста спрашивать, какие операции он поддерживает? при том, что удачный парсинг == подтверждение реализации объектом интерфейса. Я не понимаю, как можно сравнивать парсинг с программированием. |
|
Сообщ.
#3248
,
|
|
|
|
Цитата D_KEY @ Валишь. Даже по твоей ссылке подтверждения твоим словам нет. гм... как бы первый же абзац Цитата In computer programming, particularly functional programming and type theory, an algebraic data type (sometimes also called a variant type[1]) is a datatype each of whose values is data from other datatypes wrapped in one of the constructors of the datatype. Any wrapped datum is an argument to the constructor. In contrast to other datatypes, the constructor is not executed and the only way to operate on the data is to unwrap the constructor using pattern matching. Добавлено Цитата D_KEY @ Я не понимаю, как можно сравнивать парсинг с программированием. тоже попробуй мыслить абстрактно. парсим текст => (распарсили => работаем с полученными данными) || выдаем ошибку опрашиваем объект о реализации интерфейса => (интерфейс реализованн => работаем с объектом) || выдаем ошибку |
|
Сообщ.
#3249
,
|
|
|
|
Цитата korvin @ опрашиваем объект о реализации интерфейса Ну дак в моем коде это делает dynamic_cast<Interface*> |
|
Сообщ.
#3250
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Валишь. Даже по твоей ссылке подтверждения твоим словам нет. гм... как бы первый же абзац Цитата In computer programming, particularly functional programming and type theory, an algebraic data type (sometimes also called a variant type[1]) is a datatype each of whose values is data from other datatypes wrapped in one of the constructors of the datatype. Any wrapped datum is an argument to the constructor. In contrast to other datatypes, the constructor is not executed and the only way to operate on the data is to unwrap the constructor using pattern matching. Ну и где тут "набор полей"? Где тут противоречие с реализацией scala(scala в статье упоминается в списке языков с поддержкой алг.типов данных)? Цитата парсим текст => (распарсили => работаем с полученными данными) || выдаем ошибку опрашиваем объект о реализации интерфейса => (интерфейс реализованн => работаем с объектом) || выдаем ошибку Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++. |
|
Сообщ.
#3251
,
|
|
|
|
Цитата Мяут-Настоящий @ Цитата korvin @ опрашиваем объект о реализации интерфейса Ну дак в моем коде это делает dynamic_cast<Interface*> не делает, нет у нас SomeClass, у нас есть просто объект, неизвестного класса. Добавлено Цитата D_KEY @ Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++. нет, не происходит. с каким классом шаблон инстанциируешь? |
|
Сообщ.
#3252
,
|
|
|
|
Цитата korvin @ Цитата Мяут-Настоящий @ Цитата korvin @ опрашиваем объект о реализации интерфейса Ну дак в моем коде это делает dynamic_cast<Interface*> не делает, нет у нас SomeClass, у нас есть просто объект, неизвестного класса. Откуда он у нас есть? |
|
Сообщ.
#3253
,
|
|
|
|
Цитата D_KEY @ Ну и где тут "набор полей"? а что это по-твоему, как не набор полей простой структуры?, не ну можно и просто массив, собственно он от структуры только отсутствием разметки и отличается. Добавлено Цитата D_KEY @ Откуда он у нас есть? откуда угодно, из сети например |
|
Сообщ.
#3254
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Да, именно это происходит в языках со статической типизацией. В частности, при инстанцировании шаблона в С++. нет, не происходит. с каким классом шаблон инстанциируешь? С тем, который "пришел" На этапе компиляции же. Тип будет выведен, или будет указан явно. |
|
Сообщ.
#3255
,
|
|
|
|
Цитата D_KEY @ С тем, который "пришел" На этапе компиляции же. Тип будет выведен, или будет указан явно.откуда пришел? как ты выведешь тип готового объекта неизвестного типа в условиях статической типизации (да и в условиях динамической это не просто)? вот давай я щас опишу какой-нить класс на С++, создам объект и скину тебе его двоичное представление. выведешь тип? причем на этапе компиляции обязательно |