Size: a a a

Compiler Development

2020 July 06

ЗП

Зигохистоморфный Пре... in Compiler Development
JSON всего лишь язык представления данных и использовать его можно как угодно
источник

K

Konstantin in Compiler Development
но "функциональный" - это подмножество "декларативный"
источник

AK

Andrei Kurosh in Compiler Development
Konstantin
но "функциональный" - это подмножество "декларативный"
а не надмножество ли?
источник

K

Konstantin in Compiler Development
а не наоборот
источник

K

Konstantin in Compiler Development
Andrei Kurosh
а не надмножество ли?
мне кажется нет
источник

K

Konstantin in Compiler Development
не всякий декларативный язык функциональный
источник

ЗП

Зигохистоморфный Пре... in Compiler Development
Модель JSON это RoseTree
источник

AK

Andrei Kurosh in Compiler Development
Konstantin
мне кажется нет
да, я понял о чем вы говорите - подумал о том, что декларативный синтаксис является подмножеством функционального
источник

ВМ

Виталий Медоваров... in Compiler Development
Andrei Kurosh
JSON является языком разметки для некоторых систем UI
Я могу представить себе кодинг на JSON, будет этакий лисп) Только вместо s-выражений джейсон
источник

SD

Sergey D in Compiler Development
MaxGraey
На Haskell:

purescript
elm
eta

На Rust:

rust
gluon
ketos
moss
mun-lang
jonathandturner / rhai
duckscript
PistonDevelopers / dyon

и еще туева куча
На haskell написан egison.org
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Это совершенно точно НЕ embedded DSL. 😊
JSX/TSX это как раз таки DSL (вот с embedded конечно можно поспорить), но в том же TS его можно даже немного кастомизировать: https://basarat.gitbook.io/typescript/tsx/others
источник

AT

Alexander Tchitchigi... in Compiler Development
Andrei Kurosh
По факту, любой язык разметки без императивной логики — функциональный.


Вот это можно как-то обосновать?
По сути, язык разметки описывает создание AST, которое можно считать единственным "возвращаемым значением" всех конструкций. Без императивных конструкций (по факту, это только присваивания, я не встречал языков разметки с исключениями) у нас остаются только ветвления и map/filter, как вариант, записанные в виде foreach. Ну ещё quote/unquote/splice для пущей важности. IMHO, по итогу получается тотальный функциональный язык.
источник

AK

Andrei Kurosh in Compiler Development
Виталий Медоваров
Я могу представить себе кодинг на JSON, будет этакий лисп) Только вместо s-выражений джейсон
Ну да. Программу можно записать в любом виде. И в скомпилированном виде она все еще программа, но представлена вообще набором байтов :)
источник

AT

Alexander Tchitchigi... in Compiler Development
Konstantin
правильнее сказать "декларативный", чем "функциональный"
Да, но шаблонов с логическим программированием я не встречал, так что опять таки по факту — тотальный функциональный язык. 🤷‍♀️
источник

AK

Andrei Kurosh in Compiler Development
а почему тогда язык разметки нельзя считать императивным? )
источник

AK

Andrei Kurosh in Compiler Development
ну, типа

<b>Foo</b>


это короткая запись для

PushFontWeight(Bold);
DrawString("Foo");
PopFontWeight();
источник

AT

Alexander Tchitchigi... in Compiler Development
Andrei Kurosh
ну, типа

<b>Foo</b>


это короткая запись для

PushFontWeight(Bold);
DrawString("Foo");
PopFontWeight();
Вы не путаете ли нотацию языка и его реализацию?
А то с тем же успехом можно сказать, что Haskell — просто короткая запись для машинных императивных команд. 😉
источник

ВМ

Виталий Медоваров... in Compiler Development
Какой-то малоконструктивный срачик пошёл
источник

K

Konstantin in Compiler Development
так можно и любой императивный язык объявить декларативным. Типа описываем первую инструкцию, потом вторую и так далее, сплошные описания, никаких алгоритмов ))
источник

AT

Alexander Tchitchigi... in Compiler Development
Konstantin
так можно и любой императивный язык объявить декларативным. Типа описываем первую инструкцию, потом вторую и так далее, сплошные описания, никаких алгоритмов ))
источник