LINUX.ORG.RU

Об отсутствии кота

 ,


5

5

(cons cat (cons other-cat nil))

Как можно заметить, отсутствие коробки с котом не является ни коробкой, ни котом, но одновременно и тем, и тем.

Кроме того, наличие отсутствия кота по очевидным причинам определяется только в рантайме.

Ну и вдобавок - разбить представленных котов на множества можно по столь угодно большому количеству параметров, что делать это заранее - бесполезно, это просто отнимает время которого и так всегда не хватает.

К тому же, единственное, что нам и правда важно, так это то, что мы посадили котов в коробки, или скорее даже то, что они там сейчас сидят.

Отсюда:

Третья Теорема Лавсана (о бесполезности статической типизации)

Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.

Дискач.

★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.

А я-то думал, ты адекват.

mix_mix ★★★★★
()

Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.

Почитай хоть книжку какую про теорию типов, а?

Lilly
()
Ответ на: комментарий от mix_mix

Адекват ли ты, если думал про лафсана, что он адекват

anonymous
()

Завидуешь Шрёдингеру?

sin_a ★★★★★
()
Ответ на: комментарий от mix_mix

В определенный момент нужно определиться, важны тебе типы котов, или то что они в коробке. И если так выходит, что типы котов, хотя на работе ты занимаешься расфасовкой их по коробкам, то у меня плохие новости о твоей профпригодности.

lovesan ★★★
() автор топика
Ответ на: комментарий от Lilly

Я лучше прочитаю книжку о том, как сделать автоматически упаковывающиеся коробоки.

lovesan ★★★
() автор топика
Ответ на: комментарий от Kuzy

Кто-то подошел к изобретению генериков.

Deleted
()
Ответ на: комментарий от mix_mix

мой код, складывающий двух котов по коробкам короче даже вот этого вот определения того что такое код в коробке.

Вопрос - нахрена ты вот это написал если даже еще не приступил к работе?

lovesan ★★★
() автор топика
Ответ на: комментарий от lovesan

а складывать кота в коробку кто будет?

Во-первых, селффикс

data Magic a = Cat a (Magic a) | Box (Magic a) (Magic a) | Nil
Во-вторых, система типов на что?
Box (Cat "black" (Box (Cat "white" Nil) Nil) Nil) Nil :: Magic String

mix_mix ★★★★★
()
Ответ на: комментарий от lovesan

Ппц канеш, скорость печати задрачиваешь поди?

Kuzy ★★★
()
Ответ на: комментарий от lovesan

Вопрос - нахрена ты вот это написал если даже еще не приступил к работе?

Система типов тебе не даст в рантайме сложить карандаши с огурцами, и всё это за бесплатно. Без неё мы имеем оверхед на теги (для всех типов, а не только disjoint union) и необходимость писать доказательство того, что код рабочий.

mix_mix ★★★★★
()
Последнее исправление: mix_mix (всего исправлений: 2)
Ответ на: комментарий от Kuzy

Magic a позволяет тебе в качестве a задать любой тип кота, строка, очевидно, лишь для примера и простоты.

mix_mix ★★★★★
()

Ты бы перед созданием новых теорем, потрудился бы над доказательствами старых...

anonymous
()
Ответ на: комментарий от lovesan

И если так выходит, что типы котов, хотя на работе ты занимаешься расфасовкой их по коробкам, то у меня плохие новости

к доктору сходи, подлечи шизофазию. Может, заодно и тупняк подобный пропадет с форума

reprimand ★★★★★
()
Ответ на: комментарий от mix_mix

А если мне собаку посадить туда надо? Что будешь делать?

https://www.haskell.org/hoogle/?hoogle=lift

У тех кто писал Control.Applicative терпения меньше, чем у тех, кто писал Control.Monad.

Kuzy ★★★
()
Последнее исправление: Kuzy (всего исправлений: 1)

(cons cat (cons other-cat nil))

И да, ты просто привёл список из двух котов, где коробки-то? Не позорился бы.

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

тут какое дело, я во-первых не дебил, чтобы складывал огурцы с карандашами, я бы даже за деньги такое делать не стал, а во-вторых - то что код рабочий доказывается работающей программой. если ты доказал код до последнего инварианта цикла, но программа не делает то что надо, то твой код, и уже тем более доказательство - бесполезны.

lovesan ★★★
() автор топика

Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.

Шариков, перелогиньтесь!

Macil ★★★★★
()
Ответ на: комментарий от lovesan

я во-первых не дебил, чтобы складывал огурцы с карандашами, я бы даже за деньги такое делать не стал

tomato juise + vodka Всякое в жизни может случится. В хашкеле, поди, чтобы определить тип from 1 to 1000 придется перечислить все цыфыры вручную.

terminator-101
()
Ответ на: комментарий от lovesan

тут какое дело, я во-первых не дебил, чтобы складывал огурцы с карандашами

Видишь ли какое дело, люди имеют свойство допускать ошибки. Поэтому чем меньше человеческого фактора (динамическая типизация, ручное управление памятью etc.) — вот этого всего дрочева, за которым нужно следить и ничего не забыть, тем лучше и безопасней. А в случае с типизацией, компилятор ещё при сборке по рукам линейкой бьёт.

почему, cons это нормальная такая коробка

А если я хочу несколько котов в коробке? Да, list прокатит, разумеется.

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

сложить карандаши с огурцами

складывать карандаши с огурцами не грешно в свободной абелевой группе, порождённой карандашом и огурцом ©

jtootf ★★★★★
()
Ответ на: комментарий от terminator-101

придется перечислить все цыфыры вручную.

дважды

i-rinat ★★★★★
()
Ответ на: комментарий от terminator-101

Два гиганта мысли сошлись в одном треде! Хотя у меня периодически возникает мысль, что anonimous - это альтерэго лавсана для зашкаливающего тупняка. Ну типа как сан-ч и секретарша.

hateyoufeel ★★★★★
()
Ответ на: комментарий от mix_mix

А в случае с типизацией, компилятор ещё при сборке по рукам линейкой бьёт.

Уже обсуждали, только в простых случаях работает, в основном мешается.

loz ★★★★★
()
Ответ на: комментарий от mix_mix

Поэтому чем меньше человеческого фактора (динамическая типизация, ручное управление памятью etc.) — вот этого всего дрочева, за которым нужно следить и ничего не забыть, тем лучше и безопасней.

Естественно, но это не решается статической типизацией, которая бесполезна. Это решается метапрограмированием, и это единственный способ свести accidental complexity к нулю.

lovesan ★★★
() автор топика

это просто отнимает время которого и так всегда не хватает.

Не хватает времени на постинг на лоре? Мне кажется у лисперов-то времени должно быть завалом, поскольку вакансий для них в природе не существует.

fmdw
()
Ответ на: комментарий от loz

Уже обсуждали, под «в основном» почему-то понимаются прототипы на пару сотен строк, для которых вполне подойдёт и скриптопараша, а как только речь заходит о проектах больше хотя бы десятка тысяч строк, вот тут-то начинается боль.

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

Система типов тебе не даст в рантайме сложить карандаши с огурцами

Я и так не складываю карандаши с огурцами.

и всё это за бесплатно.

В том и проблема, что не бесплатно. Наличие статической типизации снижает выразительность языка, усложняет написание кода, отладку, снижает читабельность программ.

anonymous
()
Ответ на: комментарий от tailgunner

Какой песец. Ты правда так думал?

Да я особо как-то с ним до этого не общался.

mix_mix ★★★★★
()
Ответ на: комментарий от jtootf

Самое забавное в этом то, что обычно сторонники динамической типизации как раз понимают статику лучше самих статикодебилов. Например, в хаскикомьюнити непонимание статической типизации - вообще норма, а не исключение.

anonymous
()
Ответ на: комментарий от anonymous

Я и так не складываю карандаши с огурцами.

И вообще пишешь идеальный код без ошибок.

Наличие статической типизации снижает выразительность языка, усложняет написание кода, отладку, снижает читабельность программ.

Только в каком-нибудь C++98.

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

Видишь ли какое дело, люди имеют свойство допускать ошибки.

Именон по этой причине статическая типизация бесполезна - она проверяет только те места, где ты сам себе подстелил соломки. Но если ты понимаешь, что тут надо подстелить соломки - то и ошибки не допустишь. В результате статика может избавить только от тех ошибок, которых все равно не будет.

anonymous
()
Ответ на: комментарий от anonymous

где ты сам себе подстелил соломки

Так я ещё кому-нибудь другому подстелю. Пользователю свой либы, к примеру.

fmdw
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.