Кстати, std::chrono::system_clock::now().time_since_epoch().count() — очень хороший пример «продуманности» библиотеки chrono.
что тут может быть непонятно?
Непонятно «что значит count() в данном случае?» микросекунды? наносекунды?
вместо того чтобы смотреть собственно в документацию
Покажите, пожалуйста, как найти в документации С++ ответ на этот вопрос? И где эта документация C++ вообще находится?
Серьёзно, я не прикалываюсь. Во времена Microsoft Visual C++ 6.0 в качестве таковой я пользовался установленным с диска MSDN. Сейчас пользуюсь в основном cppreference.com. Но ни то, ни другое официальной документацией C++ не является.
Но вернёмся к нашему примеру.
В «документации» к методу count сказано: Return value
The number of ticks for this duration.
Ок, количество «тиков».
А теперь попробуйте без компиляции какого-либо C++-кода [а используя только «документацию»] ответить на вопрос: а сколько это будет в секундах?
Причём просьба ответить для различных компиляторов C++ (GCC и MSVC [а количество тиков в секунде у них отличается]) и без использования Google. И ещё прошу подробно описать по шагам процесс поиска ответа на такой простой вопрос. [В Python ответ находится в первом же предложении в документации к функциям time.time() и time.time_ns(), в документации, которая устанавливается вместе с Python и которую не нужно искать в Интернете.]
Вы что-нибудь слышали про язык программирования Vale?
Разработчик этого языка также обещает «memory safety without a borrow checker, generations, reference counting, or tracing GC», и утверждает, что его подход возможно реализовать в C++.
Какие преимущества у вашего языка по сравнению с подходом Vale?
Вероятность того, что кто-то станет внедрять новый язык минимальна.
Будем программировать на C++ и Python [или каком-то другом популярном сейчас языке] до скончания веков, что-ли? Попробуйте представить, что будет использоваться в IT-сфере через 50-100 лет, если вы не верите в возможность изменений в ближайшие годы/десятилетия.
Данный проект не направлен на быстрый захват аудитории, поэтому не стоит удивляться его низкой популярности [на момент публикации этого сообщения]. Сначала я намерен тщательнейшим образом проработать основы языка (встроенные типы, функции, модули) и наиболее интересные решения оформить в виде статей (вот одна из них). Кроме того, я непрерывно провожу анализ существующих языков программирования, их возможностей, особенностей и их эволюции/развития, при этом порой удаётся найти очень интересные возможности даже в достаточно старых языках (как например в PL/1) [возможности, которых нет в современных популярных языках].
Современные языки программирования имеют свои сильные стороны, но в то же время практически в каждом из языков есть ошибки проектирования или просто неудачные решения [а те языки, в которых их нет, обладают очень ограниченными возможностями]. К тому же, в современные языки добавляют очень много ненужного функционала [т.к. например современный браузер, современный 3D-движок или современную операционную систему вполне возможно написать на C++98 с использованием буквально нескольких возможностей C++11, а ядро Linux вообще целиком написано и до сих пор пишется на Си (и Rust даже не упоминается в списке языков на GitHub-странице проекта)]. И своей задачей я ставлю продумать и разработать такой язык программирования, который будет практически лишён ошибок проектирования и который будет содержать достаточно функционала [и по возможности минимальное его количество] для того, чтобы оставаться актуальным и практичным в очень долгосрочной перспективе.
точка разделения слогов находится перед слиянием (согласная+гласная) следующего слога
Тогда получится отст-ра-нять. И такое правило не учитывает присутствие в слове твердого или мягкого знаков, а также буквы «й» (подъезд, бульон, майор).
Почему неверно? У меня разделяет так: а-гент-ство, контр-стра-хо-ва-ни-е. Вы точно использовали последнюю версию кода (которая в самом конце статьи под P. P. S. внутри спойлера)?
А это по какой причине?
Что "он написан на Java"?
Pratt parser — это не библиотека, а алгоритм/техника синтаксического разбора, описанная Воном Праттом в его статье полувековой давности.
Есть реализации этой техники на Java, JavaScript, C#, Rust, Python, C++, Scheme и наверняка на каких-то других языках.
Было бы интересно взглянуть на грамматику языка, потому что составить даже беглое мнение о новом языке по одному лишь FAQ труновато.
Что вы имеете в виду под FAQ? Данную статью? Но я ведь привёл ссылку на веб-сайт языка, где есть примеры, документация и ссылки на статьи, чего имхо вполне достаточно для получения представления о данном языке.
Ведь если вызов sum(a) это эквивалент a.sum
Почему вы так решили? В 11l правильно писать только sum(a).
А у вас как?
Также как в C++.
Катаури это та самая из Владивостока, которая писала "King's bounty"?
Это эквивалент функции system()/_wsystem().
Сохранение stdout/stderr в строковую переменную в данный момент не поддерживается, т.к. я не знаю хорошего способа сделать это под Windows (непонятно как реализовать поддержку Unicode).
Также много вопросов возникает к switch оператору. Нет примеров многострочных кейсов
Самый первый пример на веб-сайте языка содержит двухстрочный кейс: I --nesting_level == 0 ....
Не очень понятно как отличать статичные и глобальные переменные.
Статичные переменные объявляются внутри функций/типов, а глобальные — вне функций/типов. При обращении к ним префикс одинаковый (двоеточие), но в других языках обращение к статичным и глобальным переменным также никак не различается.
Что с модулями? Или пока оно работает исключительно с одним файлом?
Есть пример на Rosetta Code.
Т.е. чтобы вызвать функцию модуля необходимо написать: <имя_модуля>:<имя_функции>(...)
Вместо Bash — запросто.
Можете привести пример Bash-скрипта, который не получается перевести на 11l?
[Можно перевести Bash-скрипт на Python, а затем воспользоваться транспайлером Python → 11l.]
Кстати,
std::chrono::system_clock::now().time_since_epoch().count()
— очень хороший пример «продуманности» библиотеки chrono.Непонятно «что значит count() в данном случае?» микросекунды? наносекунды?
Покажите, пожалуйста, как найти в документации С++ ответ на этот вопрос? И где эта документация C++ вообще находится?
Серьёзно, я не прикалываюсь. Во времена Microsoft Visual C++ 6.0 в качестве таковой я пользовался установленным с диска MSDN. Сейчас пользуюсь в основном cppreference.com. Но ни то, ни другое официальной документацией C++ не является.
Но вернёмся к нашему примеру.
В «документации» к методу count сказано:
Return value
The number of ticks for this duration.
Ок, количество «тиков».
А теперь попробуйте без компиляции какого-либо C++-кода [а используя только «документацию»] ответить на вопрос: а сколько это будет в секундах?
Причём просьба ответить для различных компиляторов C++ (GCC и MSVC [а количество тиков в секунде у них отличается]) и без использования Google. И ещё прошу подробно описать по шагам процесс поиска ответа на такой простой вопрос. [В Python ответ находится в первом же предложении в документации к функциям
time.time()
иtime.time_ns()
, в документации, которая устанавливается вместе с Python и которую не нужно искать в Интернете.]В The Argentum Book приводится такой пример:
Но на практике зачастую требуется нечто другое. Например, в Python 3.8 можно написать так:
Что соответствует такой записи в C++17:
Как такое сделать в Аргентум [без вспомогательной функции-предиката]?
Вот цитата непосредственно оттуда:
Собственно в этой цитате есть ссылка на сайт языка Vale.
[А ещё есть Vala. Это три различных языка программирования! (Val, Vala и Vale)]
Разработчик этого языка также обещает «memory safety without a borrow checker, generations, reference counting, or tracing GC», и утверждает, что его подход возможно реализовать в C++.
Какие преимущества у вашего языка по сравнению с подходом Vale?
Данный проект не направлен на быстрый захват аудитории, поэтому не стоит удивляться его низкой популярности [на момент публикации этого сообщения]. Сначала я намерен тщательнейшим образом проработать основы языка (встроенные типы, функции, модули) и наиболее интересные решения оформить в виде статей (вот одна из них). Кроме того, я непрерывно провожу анализ существующих языков программирования, их возможностей, особенностей и их эволюции/развития, при этом порой удаётся найти очень интересные возможности даже в достаточно старых языках (как например в PL/1) [возможности, которых нет в современных популярных языках].
Современные языки программирования имеют свои сильные стороны, но в то же время практически в каждом из языков есть ошибки проектирования или просто неудачные решения [а те языки, в которых их нет, обладают очень ограниченными возможностями]. К тому же, в современные языки добавляют очень много ненужного функционала [т.к. например современный браузер, современный 3D-движок или современную операционную систему вполне возможно написать на C++98 с использованием буквально нескольких возможностей C++11, а ядро Linux вообще целиком написано и до сих пор пишется на Си (и Rust даже не упоминается в списке языков на GitHub-странице проекта)]. И своей задачей я ставлю продумать и разработать такой язык программирования, который будет практически лишён ошибок проектирования и который будет содержать достаточно функционала [и по возможности минимальное его количество] для того, чтобы оставаться актуальным и практичным в очень долгосрочной перспективе.
Перед гласной, говорите? А как же: дяденька, большой, скользкий?
А здесь утверждается наоборот.
Тогда получится отст-ра-нять.
И такое правило не учитывает присутствие в слове твердого или мягкого знаков, а также буквы «й» (подъезд, бульон, майор).
Почему неверно?
У меня разделяет так: а-гент-ство, контр-стра-хо-ва-ни-е.
Вы точно использовали последнюю версию кода (которая в самом конце статьи под P. P. S. внутри спойлера)?
А это по какой причине?
Что "он написан на Java"?
Pratt parser — это не библиотека, а алгоритм/техника синтаксического разбора, описанная Воном Праттом в его статье полувековой давности.
Есть реализации этой техники на Java, JavaScript, C#, Rust, Python, C++, Scheme и наверняка на каких-то других языках.
А вы не рассматривали Pratt parsing?
Эта невероятно простая и гибкая техника используется в синтаксическом анализаторе транспайлера для языка 11l.
В самом низу этой страницы внутри спойлера "Methods".
А как map можно записать без скобок?
Что вы имеете в виду под FAQ? Данную статью? Но я ведь привёл ссылку на веб-сайт языка, где есть примеры, документация и ссылки на статьи, чего имхо вполне достаточно для получения представления о данном языке.
Почему вы так решили? В 11l правильно писать только
sum(a)
.Также как в C++.
Да, та самая. :)(:
Это эквивалент функции system()/_wsystem().
Сохранение stdout/stderr в строковую переменную в данный момент не поддерживается, т.к. я не знаю хорошего способа сделать это под Windows (непонятно как реализовать поддержку Unicode).
Теоретически да, но в данном случае это скорее нецелесообразно.
Вот так:
os:(‘echo "1" | ipfs add’)
Самый первый пример на веб-сайте языка содержит двухстрочный кейс:
I --nesting_level == 0 ...
.Статичные переменные объявляются внутри функций/типов, а глобальные — вне функций/типов. При обращении к ним префикс одинаковый (двоеточие), но в других языках обращение к статичным и глобальным переменным также никак не различается.
Есть пример на Rosetta Code.
Т.е. чтобы вызвать функцию модуля необходимо написать:
<имя_модуля>:<имя_функции>(...)
Можете привести пример Bash-скрипта, который не получается перевести на 11l?
[Можно перевести Bash-скрипт на Python, а затем воспользоваться транспайлером Python → 11l.]