Size: a a a

2021 March 18

JS

Jerzy Syrowiecki in Haskell
а можно наоборот — в статических пользоваться одним типом там, где это нужно.

правда, это синтаксически обычно плохо выглядит, поэтому появляется поддержка языка, как dynamic в C#
источник

JS

Jerzy Syrowiecki in Haskell
Egor Zorin
А как же метапрограммирование или как там..
с ним всё хорошо, независимо от типов
источник

JS

Jerzy Syrowiecki in Haskell
Egor Zorin
А как же метапрограммирование или как там..
с типами метапрограммирование чуть удобнее
источник

EZ

Egor Zorin in Haskell
Jerzy Syrowiecki
с ним всё хорошо, независимо от типов
А я вроде читал что это можно только на динамических, но не проверял)
источник

L

Lierdakil in Haskell
Egor Zorin
А я вроде читал что это можно только на динамических, но не проверял)
Вас обманули
источник

JS

Jerzy Syrowiecki in Haskell
Egor Zorin
А я вроде читал что это можно только на динамических, но не проверял)
в Расте и Хаскеле есть отличные макросы с типами
источник

EZ

Egor Zorin in Haskell
Lierdakil
Вас обманули
(((
источник

JS

Jerzy Syrowiecki in Haskell
Egor Zorin
А я вроде читал что это можно только на динамических, но не проверял)
в С++ есть шаблоны (тоже метапрограммирование) и скоро будет код для этапа компиляции как в Хаскеле
источник

L

Lierdakil in Haskell
Jerzy Syrowiecki
а можно наоборот — в статических пользоваться одним типом там, где это нужно.

правда, это синтаксически обычно плохо выглядит, поэтому появляется поддержка языка, как dynamic в C#
Кстати да, из хаскела же тоже можно сделать динамически типизированный язык. Непонятно зачем, но можно. Typeable же. А ещё если не обращать внимание на DataKinds то на уровне типов хаскел выглядит почти как "динамически типизированный" (kind-ированный?)
источник

JS

Jerzy Syrowiecki in Haskell
Lierdakil
Кстати да, из хаскела же тоже можно сделать динамически типизированный язык. Непонятно зачем, но можно. Typeable же. А ещё если не обращать внимание на DataKinds то на уровне типов хаскел выглядит почти как "динамически типизированный" (kind-ированный?)
да, Typeable в компиляторе + Dynamic в библиотеке
источник

JS

Jerzy Syrowiecki in Haskell
Lierdakil
Кстати да, из хаскела же тоже можно сделать динамически типизированный язык. Непонятно зачем, но можно. Typeable же. А ещё если не обращать внимание на DataKinds то на уровне типов хаскел выглядит почти как "динамически типизированный" (kind-ированный?)
потому что все типы — одного типа Type?
источник

L

Lierdakil in Haskell
Jerzy Syrowiecki
потому что все типы — одного типа Type?
Именно поэтому.
источник
2021 March 19

L

Lierdakil in Haskell
Jerzy Syrowiecki
потому что все типы — одного типа Type?
Но ещё конечно потому что проверка kind-ов в то же время когда и проверка типов, то есть в "рантайме" -- все типы же вычисляются при компиляции. Но это странный способ смотреть на вещи, да.
источник

JS

Jerzy Syrowiecki in Haskell
Lierdakil
Но ещё конечно потому что проверка kind-ов в то же время когда и проверка типов, то есть в "рантайме" -- все типы же вычисляются при компиляции. Но это странный способ смотреть на вещи, да.
источник

JS

Jerzy Syrowiecki in Haskell
язык типов не только динамический, но и логический
источник

L

Lierdakil in Haskell
Jerzy Syrowiecki
язык типов не только динамический, но и логический
Ну смотря с какой стороны посмотреть. Если писать на тайпклассах, то тайпкласс на уровне типов это логический предикат, да. Но есть ведь ещё закрытые семейства типов -- на них можно вполне функциональный код писать.
источник

L

Lierdakil in Haskell
А эта статья меня в своё время вдохновила разобраться с тем как язык типов вообще работает. Но она не самые свежие техники использует, потому что она по мотивам type level insanity 2007 года, а закрытые семейства типов  у нас появились только в 14-м вроде. Я не пробовал, но на первый взгляд там многое можно упростить.
источник

O

Ortofax in Haskell
как-то можно ghci заставить напечатать типы для всех интересующих меня подвыражений внутри функции?
источник

O

Ortofax in Haskell
ну да, достаточно же сделать на них :: _
источник

I

Ivan in Haskell
Ortofax
ну да, достаточно же сделать на них :: _
этому трюку я только что научился, пока тут сижу разбираю материал этого господина:
https://www.youtube.com/watch?v=N9RUqGYuGfw
источник