amarao (amarao_san) wrote,
amarao
amarao_san

Category:

cs-фантазия

(читать как фэнтези)

Абстрактное обобщение системы типов на систему категорий, позволяющих на уровне языка определять отношения между сущностями языка. В практическом смысле позволяет подключаемой библиотеке оперировать понятиями domain specific area без дополнительного эскейпинга и кавычек.

После подключения регэкспов мы можем использовать регэкспы прямо в коде - map( /F(.+)/\1/, list_of_string).
После подключения файлового модуля мы можем работать с файлами прямо в коде: if len(/etc/passwd) > 1000 { truncate /etc/passwd 1000 }
После подключения url можем слать запросы и работать с заголовками:

POST example.com/rest/api
{
"body_here"
}

=> result

match(result)
    500: print(result.body)

После подключения sql - писать sql без инъекций и лишнего обкавычивания.

После подключения linq или json_path делать так: somejson[?name="foo"][2].bar.[]

Что произойдёт после подключения html или tex, я думаю, и так понятно.

Система категорий описывает не только отношения функций и типов, но и отношения типов и языка.

Сам язык тоже описан в системе категорий и куски языка просто подключаются в prelude или отдельными модулями. Трейты, классы, типы данных, даже функции (!) всего лишь описаны внутри прелюдии и не являются основной частью языка.

В процессе компиляции язык проверяет непротиворечивость заявленных отношений и выдаёт предупреждение, если, например, возникает конфликт между одним доменом и другим по методам использования (категория персистентности, подразумеваемая в одной библиотеке не описана в другой библиотеке, которая предоставляет только эфимерное хранение).

Повторю, фантазия. Как там будут лексеры с парсерами танцевать - не имею ни малейшего представления
Tags: cs
Subscribe

  • equart'овское - поиск в дереве

    Ещё одна интересная проблема, точнее оптимизация, которую я сейчас осознал, связана с нахождением точек в регионе. В общем случае основное 'read'…

  • программирование

    Один навык, которму нельзя научиться иначе, чем на личном опыте, это способность замечать, когда пишется слишком много кода. Когда пишется слишком…

  • factorio

    Всё-таки это очень депрессивная игрушка. Примерно такого же класса депресии, как и теорема о неполноте Геделя. Убираем все "мешающие" факторы и…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments