@haskellru

Страница 105 из 1551
Alexander
21.08.2016
15:28:35
Еще inline-java есть у нас

Пока только байндинги правда, без TH

Aldar
22.08.2016
08:15:50
http://www.mathstat.dal.ca/~selinger/quipper/

Вдохновлялись хаскелем видимо

Google
Evgenij
22.08.2016
08:26:09
Только где достать квантовый компьютер??

Denis
22.08.2016
09:07:45
Вдохновлялись хаскелем видимо
Вдохновлялись... Там прямым текстом написано, что без ghc работать не будет.

Только где достать квантовый компьютер??
Квантовый компьютер доставать не нужно, его нужно эмулировать.

Evgenij
22.08.2016
09:16:20
Видел где-нибудь симулятор для по играться?

Denis
22.08.2016
09:18:03
Видел где-нибудь симулятор для по играться?
Не симулятор, а эмулятор. :) Нет, не видел, к сожалению. Меня квантовые вычисления не особо интересуют, потому что компьютерами в привычном понимании этого слова им не стать.

Прикольно, многие реально пытаются симулировать квантовые процессы

Evgenij
25.08.2016
15:16:19
Ребята сможет понятно объяснить что такое "type level" программирование - так то я интуитивно понимаю -> хочется чёткого определения?

Aleksey
25.08.2016
15:24:24
это кодирование инвариантов программы при помощи типов

Evgenij
25.08.2016
15:29:57
те это только подходит для яп с сильными типами?со слабыми типами это невозможно?

Aleksey
25.08.2016
15:33:46
Для начала надо определиться, о чем речь. Если ты в с++ явно опрделяешь тип переменной, то это уже кодирование инварианта, и можно рассматривать как простиейший вид type level coding. В хаскеле можно кодировать инварианты с более сложными условиями.

Evgenij
25.08.2016
15:39:24
Ну например джаваскрипт - слабая типизация - т.е. тайп левел программирование там невозможен ( инвариантность бесконечна - даже если неправильное выражение - всё равно отработает , а что будет в результате хз), а на хаске сильная - там это сам бог требует т.е. это возможно (может я неправильно сформулировал вопрос?)

это кодирование инвариантов программы при помощи типов
Кстати это определение мне нравится(надо записать)?

На размышления меня подвинула статья https://habrahabr.ru/post/308484/

Google
Evgenij
25.08.2016
15:47:08
Особенно про Idris - он же ссужает диапазон возможных ошибок -> и снижает затраты и время на тестирование(имхо)

Aleksey
25.08.2016
15:47:24
Скорее речь про динамическую и статическую типизацию. В языках с динамической типизацией кодирование инвариантов менее полезно, ибо инварианты будут проверены во время выполнения программы, в языках со статической типизацией проверки типов происходят на стадии компиляции.

Evgenij
25.08.2016
15:48:39
Я гдето читал если например был бы язык с ленивостью и при этом динамическая типизация - то нереально былобы его тестировать - т.е. никто не смог бы точно сказать что прога будет делать в любой момент

И тут хаск - но вот сможет кто нибудь кинуть мне ссылку - на премущества ленивости vs жадности)

Aleksey
25.08.2016
15:54:21
https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B8_%D1%81%D0%BB%D0%B0%D0%B1%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F судя по определению сильная типизация это та, которая позволяет больше возможностей для типизации.

Evgenij
25.08.2016
15:57:54
Да сиогласен - но вот для меня яркими антиподами для статических типов - Хаскель и Голанг

melancholiac
25.08.2016
15:58:20
голанг.....

я так много слышу о нем в последнее время

Vladimir
25.08.2016
16:01:43
У него логтип клевый

это привлекает людей

маркетинг

Evgenij
25.08.2016
16:02:03
Голанг тестить надо хорошо - сам столкнулся type ( user struct { ID int json:"id" Name string json:"name" Age int jsom:"age" } )

Скомпилась без вопросов - только молча json поле age было Age - c заглавной

Aleksey
25.08.2016
16:04:24
а другие с прописной?

Evgenij
25.08.2016
16:04:38
А я думал что это элм противится)

а другие с прописной?
да посмотри - там опечатка в поле age

Мерлин
25.08.2016
16:05:41
А я думал что это элм противится)
Вообще с этим бида Поэтому для Go есть масса санитайзеров

Aleksey
25.08.2016
16:06:05
> jsom да, смешно

я так понял, json тут - аннотация, которая используется библиотекой для генерации json и эта библиотека молча использует имя поля, если не нашла нужную аннотацию

Google
Aleksey
25.08.2016
16:09:12
разработчики Го вообще отказались от прогресса в языках программирования за последние лет 20. Предлагают все делать как в сишке. Го мало интересен, если ты хочешь писать надежные типизированные высокоуровневые программы.

Evgenij
25.08.2016
16:10:50
Вот фронт на елме

melancholiac
25.08.2016
16:11:45
эльммен

на эльме можно как на джс?

Evgenij
25.08.2016
16:12:14
Превалидация

melancholiac
25.08.2016
16:12:22
(я всмысле что-то серьезное)

Denis
25.08.2016
16:12:29
Какой-то бред, если честно. Простите, если кого обидел.

melancholiac
25.08.2016
16:12:30
или еще сыроват?

Denis
25.08.2016
16:15:06
type level это про подход к программированию, в котором большой упор делается на типизацию данных. То есть в такой программе, грубо говоря, типы "мяч" и "шар" это разные типы, которые нельзя смешивать просто так. И этот подход возможен в любом языке программирования, где имеется возможность определять свои типы.

Evgenij
25.08.2016
16:16:16
на эльме можно как на джс?
Да там прямо интерактивно всё делать можно (без всяких выкрутасов) - а типы строго проверяет

Denis
25.08.2016
16:16:30
Динамическая, статическая, сильная, слабая типизация... Пофиг. Это можно парадигмой назвать. Или шаблоном. Как процедурное программирование.

Evgenij
25.08.2016
16:17:16
Динамическая, статическая, сильная, слабая типизация... Пофиг. Это можно парадигмой назвать. Или шаблоном. Как процедурное программирование.
Всё таки я вангую что со повышением сложности сильно типизированные ЯП выиграют - но ленивость убъёт многих))))

Denis
25.08.2016
16:17:54
чем это лучше определения выше?
Потому что слово "инварианты" знакомо примерно 5% людей и еще меньше людей правильно его понимают.

Evgenij
25.08.2016
16:19:39
на эльме можно как на джс?
А мне отладчик - пока костыль понравился ( говорят будет более лучше - пробы с версиями ) - Время неимеет значение - важна жизнь(с) (5й элемент)

Denis
25.08.2016
16:19:55
Главное, что понимают его меньше людей, чем используют.

Google
Evgenij
25.08.2016
16:21:31
Если кому интересно могу кинуть исходник быдло кода н аэлме)))

Denis
25.08.2016
16:22:10
можно тест? неизменные сущности?
В чем смысл "теста"? Хочешь, чтобы я подтвердил или опроверг, что ты входишь в те <5%?

melancholiac
25.08.2016
16:22:21
да

Admin
ERROR: S client not available

melancholiac
25.08.2016
16:22:29
можно и так

Denis
25.08.2016
16:23:16
да
Ок, ты точно попал в 5% Для остального слишком мало написал. У слова слишком много вариантов использования.

melancholiac
25.08.2016
16:23:30
ееееееее

Denis
25.08.2016
16:24:32
ееееееее
Тут видишь какое дело. Так и не стало понятно, как эти "неизменные сущности" применить к программированию, основанному на типизации.

melancholiac
25.08.2016
16:25:33
2 тест : объекты должны иметь инвариантный тип?

(хотя если чесно херню сморозил ибо по смыслу "исключить полиморфное поведение")

Aleksey
25.08.2016
16:32:00
это как раз слабая

Denis
25.08.2016
16:32:24
Хитрый ход :)

Мерлин
25.08.2016
16:32:40
это как раз слабая
То есть в js сильная типизация?

Denis
25.08.2016
16:33:09
Но нет, сильная и слабая типизация это не черное и белое. Там посередине дофига оттенков

Evgenij
25.08.2016
16:33:53
Да я согласен - термин чётко пока не сформулирован

Aleksey
25.08.2016
16:34:25
В хаскеле явное приведение типов тоже не обязательно, вернее, его можно сделать неявным через тайпклассы.

Denis
25.08.2016
16:34:43
Например, один язык позволяет прибавить к строке число, а в другом есть конструктор даты из строки. В каком из них типизация сильнее или слабее?

Google
Aleksey
25.08.2016
16:35:08
это вообще не говорит о типизации

Denis
25.08.2016
16:35:33
Или вот, если в языке к строке можно символ добавить, это делает типизацию слабой?

Evgenij
25.08.2016
16:35:53
Да конструкторы это не типы - их можно реализовать как хочешь

Мерлин
25.08.2016
16:39:06
В смысле, если внешне конкатенация двух строк и прибавление числа к строке неотличимы и это валидная операция - то это слабая типизация

Хотя это всё вопрос терминологии

Evgenij
25.08.2016
16:40:56
Я думаю что вкладывают в понятие например String и в Char создателя языка

Denis
25.08.2016
16:44:29
Да уж, ребятки. Вот есть у нас "замечательный" язык C++, прости господи. В нем нельзя сложить строку и символ. Но я могу перегрузить оператор сложения и определить нужную операцию. И, о чудо, строка начала складываться с символом!

Anatolii
25.08.2016
16:44:36
Товарищи, есть пакеты Text.Parsec и Text.ParsecCombinators.Parsec

и у них некоторые функции пересекаются

кто-то обьяснит почему так?:)

Denis
25.08.2016
16:50:01
кто-то обьяснит почему так?:)
Интересный вопрос :)

Index
25.08.2016
17:21:31
Re: type level programming

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