@haskellru

Страница 1358 из 1551
Alexander
23.07.2018
09:20:09
я слышал выражения, как об стену горох, биссер перед свиньями и гляжу в книгу вижу фигу

и думаю какое бы выбрать

вроде 1 лучше всего?

Алексей
23.07.2018
09:21:34
В общем я всё понял: спасибо. Это абсолютно одинаковые понятия.
Ну да действительно, ведь время выполнения и время компиляции - это тоже абсолютно одинаковые понятия.

Google
Alexander
23.07.2018
09:22:19
более того синтаксис яп, и инструкции процессора и инструкции байткод процессора это одно и тоже

Index
23.07.2018
09:23:05
Господи, ну как с людьми разговаривать, попробую как с тупыми тогда Есть три буквы, Т И П. Мы какие-то явления называем этими тремя буквами, а какие-то не называем. Похожи они или нет. Вот приду я к биологу, он мне покажет, мол, вот это К О Ш К А, а вот это С О Б А К А. А я ему начну: посмотри, придурок, это же одно и то же. Четыре лапы, шершавый язык, ушки, и звуки издает. На меня посмотрят как на дебила, возможно, не поняв, какой deep connection я сделал.

Александр
23.07.2018
09:23:37
Ну что вы такие нетолерантные к чужому мнению

Index
23.07.2018
09:23:51
И вот у слова Т И П в computer science тоже есть класс явлений, которые им называются, и те, которые им не называются. Даже если похожи. Если в рантайме — всё, не тип

Alexander
23.07.2018
09:23:59
потому что нас люди читают

Ilya
23.07.2018
09:24:08
три матёрых хаскеллиста доминируют над джаваскриптером, спешите видеть

Alexander
23.07.2018
09:24:18
и если быть толерантным к чужому мнению, то они не будут видеть опровержений

пусть считает как хочет, жалко что-ли

???????
23.07.2018
09:24:31
Я не знаю, когда программист на динамическом языке пишет код он не думает о каких-то мифических тегах, он думает о типах, он работает с типами и ему пофиг как это реализовано.

Alexander
23.07.2018
09:24:49
потому, что он называет тег типом

т.к. не знает что такое тип

A64m
23.07.2018
09:25:02
не думает он о типах, он думает о тегах. что такое типы он чаще всего вообще не знает

dimiii
23.07.2018
09:25:15
На самом деле, интересный вопрос, как отделить статические проверки от степени функциональности. То что системы типов и тайпчекеры наиболее развиты в тех языках, которые считаются провославными в отношении ФП - это можно рассматривать как совпадение (помимо очевидного набора свойств благприятствующих реализации проверок)

Google
???????
23.07.2018
09:25:15
В статических языках вы тоже называете тег типом, мы чуть выше уже это выяснили.

Alexander
23.07.2018
09:25:21
ничего страшного, но мы то тут знаем, так что давайте придерживаться академической и принятой терминологии

A64m
23.07.2018
09:25:29
(последнее сраведливо и для большинства программистов)

Alexander
23.07.2018
09:25:42
в чате js никто этого требовать не будет

Pineapple
23.07.2018
09:25:48
Ну что вы такие нетолерантные к чужому мнению
Потому что надо поддерживать терминологическую чистоту, итначе слова будут означать что угодно и потеряют смысл

Андрей
23.07.2018
09:25:49
(читают, и тоже имеют свое нетолерантно воспринимаемое чужое мнение)

Alexander
23.07.2018
09:26:00
ну разве если они не начнут доказывать, что статический тип и динамический это одно и тоже

Index
23.07.2018
09:26:16
В статических языках вы тоже называете тег типом, мы чуть выше уже это выяснили.
Потому что и кошку, и собаку можно назвать "животное". Так же как типы и рантайм-метки можно назвать "тег"

dimiii
23.07.2018
09:26:25
Предлагаю считать ФП - те языки, у которых существует простая и компактная денотация в абстрактные математические функции (лямбда исчисление)

Index
23.07.2018
09:26:40
тип: компайл-тайм тег для тёрма "динамический тип": рантайм тег для значения

A64m
23.07.2018
09:26:43
В статических языках вы тоже называете тег типом, мы чуть выше уже это выяснили.
нет, это не мы называем тег типом, а вы в своей аналогии называете тип - тегом.

dimiii
23.07.2018
09:26:54
Чем с большим скрипом дается описание денотационной семантики - тем меньше язык ФП

Index
23.07.2018
09:26:59
специально в кавычках, потому что термин противоречивый

а поэтому проще назвать это просто тегом

Alexander
23.07.2018
09:27:25
Это не предел мечтаний, можно и другие системы анализа придумать, но как их реализовывать толком неясно
* разновидность статического анализа до тех пор, пока не появляется какой-то ad hoc полиморфизм, будь то тайпклассы или трейты

Index
23.07.2018
09:27:41
ну да, тогда кодогенерация добавляется

dimiii
23.07.2018
09:27:45
*статического, лол

Алексей
23.07.2018
09:28:00
ну разве если они не начнут доказывать, что статический тип и динамический это одно и тоже
Нормальные жсники (типа меня) вспомнят про TypeScript у которого тип переменной на этапе компиляции и то что в ней лежит в рантайме могут не совпадать вообще. Так что это уже не одно и тоже.

Leonid
23.07.2018
09:28:22
вот у вас подгорело то. развели как детей

Google
Alexander
23.07.2018
09:29:19
не уверен, что подогрело

Александр
23.07.2018
09:29:26
Мысленный эксперимент. Возьмем компилятор хаскелля. Проапдейтим таким образом, чтобы типы игнорировались. Оставим недоопределенный код как "недопарсенный санк". Начнем выполнять те участки, которые можно выполнить. При наступлении на переменную будем допарсивать тип, доопределять словари, догенерировать код. и тайпчекать. Это возможно? Если да, то будет ли это типами?

Index
23.07.2018
09:29:28
у меня горит

Alexander
23.07.2018
09:29:30
это "в интернете кто-то не прав"

Alexander
23.07.2018
09:29:52
у Haskell есть defer-type-errorz

Index
23.07.2018
09:29:53
нет, это не типы уже

-fdefer-type-errors отключает типы

Alexander
23.07.2018
09:30:10
с другой стороны он все равно все чекает при компиляции

и вставляет error "bububu"

где не чекнулось, с ошибкой тайпчеккера

Index
23.07.2018
09:32:01
типы от имплементации не зависят, но описанная система не является имплементацией типов

Антон
23.07.2018
09:32:17
Секция 1.1, "Type theory versus set theory"
Кстати, какой бекграунд для этой книги нужен? А то я пытался читать - сложно

A64m
23.07.2018
09:32:19
-fdefer-type-errors отключает типы
не отключает, просто генерирует код не как обычно

???????
23.07.2018
09:32:41
И вот у слова Т И П в computer science тоже есть класс явлений, которые им называются, и те, которые им не называются. Даже если похожи. Если в рантайме — всё, не тип
В CS работая с типами мы вообще игнорируем существование и рантайма, и компайлтайма, у нас их нет, у нас есть сущность для которой верно единственное условие "Тип это то, что может в себе что-то содержать" и потом уже вводим необходимый нам перечень типов, операции над ними и т.д. CS вообще не про рантайм и компайлтайм, это когда вы CS прекладываете к чему-то, там к разработке компиляторов, к проектированию программ вот тогда у вас всё это появляется до этого этого нет, а типы всё ещё есть. Компиляции нет, а типы есть.

A64m
23.07.2018
09:32:50
потому, кстати, есть такие ошибки типов, с которыми он не справится, и не сможет ничего выполняющегося нагенерить

> Тип это то, что может в себе что-то содержать вообще-то нет

Google
A64m
23.07.2018
09:33:44
тип - это то что справа от :

это множество - "может в себе что-то содержать"

Index
23.07.2018
09:35:26
не знаю какой бекграунд, но явно больше, чем мой я не смог читать дальше интродакшена в теорию типов, но зато из интродакшена узнал что такое пи и сигма типы

это было несколько лет назад, мой бекграунд был на уровне "умею на хаскеле писать" (наверное там же он и остался)

Андрей
23.07.2018
09:37:29
“умею на хаскель писать” имхо дофига какой бэкграунд. не думаю, что во всем чатике более нескольких человек имеют такой

???????
23.07.2018
09:37:43
> Тип это то, что может в себе что-то содержать вообще-то нет
Почему-то проклятые комьютерсаентисты вполне себе позволяют определять тип именно так, например, https://youtu.be/h53eFYkAN6I?t=7m31s

Admin
ERROR: S client not available

Index
23.07.2018
09:38:10
очень крутой программист строит из себя скромника
это не humblebrag, а факт, у меня очень поверхностные знания всего за пределами Haskell

A64m
23.07.2018
09:39:27
Index
23.07.2018
09:40:48
из того же TAPL только ту же первую главу прочитал, которую скинул, а дальше распечатка так и валяется по теории категорий я понял, что такие категории и функторы, дальше уже не разобрался (всякие limits colimits не осилил) по HoTT прочитал только первую главу на Agda написал пару игрушечных программ на C++ писал в школе и из этого имею отдаленное представление о том, какова жизнь без GC и т.д.

то есть единственный реальный бэкграунд у меня в том, что я на Haskell пишу достаточно долго

Андрей
23.07.2018
09:42:50
ну разве если они не начнут доказывать, что статический тип и динамический это одно и тоже
а почему бы не подоказывать? берем любой джаваскрипт, вешаем в синтаксис теги типизации, добавляем обработку получившегося текста препроцессором, чекающим эти теги, называем эту обработку компайл-тайм, и внезапно имеем статические типы и тайпскрипт

Alexander
23.07.2018
09:44:56
и теги могут по факту отличаться от типов

Александр
23.07.2018
09:45:28
Что есть рантайм?

Google
Александр
23.07.2018
09:45:37
С точки зрения включенного компьютера - все рантайм

???????
23.07.2018
09:46:13
Что есть рантайм?
С точки зрения работы тайпчекера он проверяет типы в своём рантайме.

A64m
23.07.2018
09:46:18
поэтому для определения типов и не используются слова рантайм и компайл тайм

они используются тут для иллюстрации более-менее типичных случаев

Index
23.07.2018
09:46:51
С точки зрения включенного компьютера - все рантайм
рантайм статического анализатора и кодогенератора и рантайм самой программы это как бы разные вещи

я не знаю как их можно спутать

т.е. компайл-тайм это рантайм компилятора

dimiii
23.07.2018
09:47:22
Давайте уже каждый обозначит свою позицию на диаграмме и закончим на этом

Алексей
23.07.2018
09:47:45
так там динамический "тип" и статический тип не одно и то же, как и везде
ну не везде, кстати говоря в той же Java к примеру просто невозможно нарушить типизацию

A64m
23.07.2018
09:48:00
ну, рантайм кодогенератора и программы иной раз перепутать можно еще как

A64m
23.07.2018
09:48:45
ну не везде, кстати говоря в той же Java к примеру просто невозможно нарушить типизацию
да, но из-за сабтайпинга разница между типами и тегами есть, все равно

Алексей
23.07.2018
09:49:10
блин, точно я про дженерики то забыл

A64m
23.07.2018
09:49:55
http://wouter.coekaerts.be/2018/java-type-system-broken
а баг с вариантностью массивов в яве есть? (ссылку не читал)

IC
23.07.2018
09:50:00
Александр
23.07.2018
09:50:19
я не знаю как их можно спутать
Если запихнуть в другую программу компилятор и код исходной программы - можно спутать.

Index
23.07.2018
09:51:33
по-другому подойду к вопросу все, что можно выполнить до деплоя, это статика

Страница 1358 из 1551