Size: a a a

Compiler Development

2020 February 18

KR

K R in Compiler Development
Раз уж так много обсуждений языков - вот Rust весь построен на unique_ptr из C++, Хаскель - на futures. А какой язык целиком построен на корутинах?
источник

RE

Roman Elizarov in Compiler Development
Go?
источник

YS

Yuriy Syrovetskiy in Compiler Development
K R
Раз уж так много обсуждений языков - вот Rust весь построен на unique_ptr из C++, Хаскель - на futures. А какой язык целиком построен на корутинах?
здесь все утверждения ошибочны
источник

K

Kir in Compiler Development
K R
Раз уж так много обсуждений языков - вот Rust весь построен на unique_ptr из C++, Хаскель - на futures. А какой язык целиком построен на корутинах?
На каких ещё futures, простите?
источник

M

MaxGraey in Compiler Development
K R
Раз уж так много обсуждений языков - вот Rust весь построен на unique_ptr из C++, Хаскель - на futures. А какой язык целиком построен на корутинах?
«Язык, который нельзя произностить в слух» постоен на RAII и принципах владениях  / заимствования. Хаскель на хвостовых рекурсиях, CPS, STM, функторах, монадах и прочей лямбда вычислительной братии, типизации HM и кучей еще всяких плюшек, вот скоро еще линейные типы завезут
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
И ещё один заход на идеальный язык программирования: http://users.rcn.com/david-moon/Lunar/index.html 😊
Интересная идея делать весь синтаксис языка на макросах. Правда есть подозрение, что сложность поддержки такого языка в IDE от этого растет экспоненциально
источник

PS

Peter Sovietov in Compiler Development
K R
Раз уж так много обсуждений языков - вот Rust весь построен на unique_ptr из C++, Хаскель - на futures. А какой язык целиком построен на корутинах?
Если учесть, что сопрограммы родом из далеких 60-х, то языков наберется подобных несколько. Например, тот же потомок Snobol — Icon.
источник

KR

K R in Compiler Development
MaxGraey
«Язык, который нельзя произностить в слух» постоен на RAII и принципах владениях  / заимствования. Хаскель на хвостовых рекурсиях, CPS, STM, функторах, монадах и прочей лямбда вычислительной братии, типизации HM и кучей еще всяких плюшек, вот скоро еще линейные типы завезут
Для линейных типов там придётся полностью переписывать Prelude, это проговаривалось. И, скорее всего, выйдет так же, как с Рюкзаком.
источник

K

Kir in Compiler Development
MaxGraey
«Язык, который нельзя произностить в слух» постоен на RAII и принципах владениях  / заимствования. Хаскель на хвостовых рекурсиях, CPS, STM, функторах, монадах и прочей лямбда вычислительной братии, типизации HM и кучей еще всяких плюшек, вот скоро еще линейные типы завезут
Я лично зависимых жду
источник

KR

K R in Compiler Development
Kir
На каких ещё futures, простите?
Thunk - это такой урезанный однопоточный future. 😉
источник

K

Kir in Compiler Development
K R
Thunk - это такой урезанный однопоточный future. 😉
Thunk - это узел графа, который будет переписан на свой результат по исполнению
источник

K

Kir in Compiler Development
С фьючом у него мало общего
источник

KR

K R in Compiler Development
Такое ощущение, что все бегают вокруг нескольких десятков идей, чуть-чуть их видоизменяя и переназывая.
источник

K

Kir in Compiler Development
Это ленивое значение, а не фьюч.
источник

MM

Mikhail Maltsev in Compiler Development
Ну, в C++, например, стандартная реализация ленивых значений основана на future
источник

MM

Mikhail Maltsev in Compiler Development
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
Интересная идея делать весь синтаксис языка на макросах. Правда есть подозрение, что сложность поддержки такого языка в IDE от этого растет экспоненциально
Напоминает Elixir, нет? 😊
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Напоминает Elixir, нет? 😊
Я с ним не знаком, но вроде бы это динамический язык?
источник

M

MaxGraey in Compiler Development
Вот что такое Thunk
thunk = lambda name: lambda *args: lambda: name(*args)

На JS:

const thunk = fn => (...args) => () => fn(...args)
источник

YS

Yuriy Syrovetskiy in Compiler Development
MaxGraey
Вот что такое Thunk
thunk = lambda name: lambda *args: lambda: name(*args)

На JS:

const thunk = fn => (...args) => () => fn(...args)
нет, должен быть ещё кэш
источник