Re[36]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 15:18
Оценка: +1
Здравствуйте, mrTwister, Вы писали:
T>Зато у них есть общая операция '+' и мы вместо строки можем подставить (substitute) число и наоборот. То есть они ведут себя так, как будто у них есть базовый тип, определяющий операцию '+'. Вот тут то как раз LSP и нарушается.
Нет, не нарушается. Базовый тип у них — моноид. Пока ты не используешь специфичные для строк или чисел особенности операции "+" — все будет ок.
Re[37]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 15:55
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Зато у них есть общая операция '+' и мы вместо строки можем подставить (substitute) число и наоборот. То есть они ведут себя так, как будто у них есть базовый тип, определяющий операцию '+'. Вот тут то как раз LSP и нарушается.
MC>Нет, не нарушается. Базовый тип у них — моноид. Пока ты не используешь специфичные для строк или чисел особенности операции "+" — все будет ок.

А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?

PS.: По поводу виртуальных функций я так понял, возражений нет?
лэт ми спик фром май харт
Re[38]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 15:58
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?
А в нашем моноиде минуса не было. Только плюс был.
Re[39]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 16:07
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?
MC>А в нашем моноиде минуса не было. Только плюс был.

И что? Я не имею права такой код написать?
лэт ми спик фром май харт
Re[40]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 16:09
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>И что? Я не имею права такой код написать?
В тюрьму тебя не посадят, но LSP к нему неприменим.
Re[41]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 18:56
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>И что? Я не имею права такой код написать?
MC>В тюрьму тебя не посадят, но LSP к нему неприменим.

Почему неприменим?
лэт ми спик фром май харт
Re[42]: Странные фичи языков
От: Mr.Cat  
Дата: 27.08.10 07:49
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>Почему неприменим?
Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).
Re[43]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 08:49
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Почему неприменим?
MC>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

Более того, для моноида операция «+» коммутативна только для единичного элемента. Коммутативность сложения чисел так же — свойство дочернего класса.
Re[43]: Странные фичи языков
От: mrTwister Россия  
Дата: 27.08.10 10:06
Оценка: :)))
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Почему неприменим?
MC>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9

P.S.: то, что за кадром работает динамическая типизация — это уже технические детали реализации магии.
лэт ми спик фром май харт
Re[22]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 10:46
Оценка:
Здравствуйте, Erop, Вы писали:

A>>А почему нет? Это запрещено?

E>Программа немножко плохо предсказуемо работает, а так всё хорошо...

Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.
Re[44]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 13:14
Оценка:
Здравствуйте, mrTwister, Вы писали:

MC>>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

T>Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9
T>P.S.: то, что за кадром работает динамическая типизация — это уже технические детали реализации магии.

То есть мы типа должны забыть в этот момент о динамической типизации, как о неудобном факте? Только тогда этот пример покажет нам, что для строк определена операция вычитания.
Re[44]: Странные фичи языков
От: Mr.Cat  
Дата: 27.08.10 13:39
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9
Ну ок, пусть определена. Но она все равно не входит на наш моноид, который мы считаем суперклассом для чисел и строк.
Re[23]: Странные фичи языков
От: Erop Россия  
Дата: 30.08.10 10:08
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.


Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

Приятной и лёгкой тебе отладки!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[24]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.08.10 19:22
Оценка: :)
Здравствуйте, Erop, Вы писали:

A>>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.

E>Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).
Re[25]: Странные фичи языков
От: Eugeny__ Украина  
Дата: 31.08.10 08:35
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, Erop, Вы писали:


A>>>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.

E>>Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

A>На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).



«Можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт что-то неожиданное» даже если программист прочитал все доки, пошевелил мозгами, и обложил все тестами, просто вероятность меньше(это если случайно, специально сделанные случаи называются закладками, и за них принято бить по рукам). Мир не совершенен, увы.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[26]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 31.08.10 08:46
Оценка:
Здравствуйте, Eugeny__, Вы писали:

A>>На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).

E__>«Можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт что-то неожиданное» даже если программист прочитал все доки, пошевелил мозгами, и обложил все тестами, просто вероятность меньше(это если случайно, специально сделанные случаи называются закладками, и за них принято бить по рукам). Мир не совершенен, увы.

Кто же спорит? Но как в этом виноват язык программирования?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.