Size: a a a

2020 April 06

NL

Nick Linker in rust_offtopic
Gymmasssorla
Ага, мне он тоже с первого раза понравился. Когда дочитаю ТК и "Types and programming languages", попробую его ещё раз попытаться осилить
Коварный rust_offtopic, пришлось тоже начать проходить туториал.
источник

P

Pavel in rust_offtopic
*набрасывает*
источник

P

Pavel in rust_offtopic
Придумал крутой язык программирования henlang.

Henlang — сокращение от incomprehensible language, непостижимый язык. Также, hen это курица, то есть курояз. Также, 変 (хэн) это странный по-японски, то есть странный язык.

Вот несколько примеров кода на хенланге: вычисление n-ного числа Фибоначчи, вычисление факториала n, длина связанного списка.

Fibonacci←λn{
 1ι∋n⇒nι;
 n-(1)Fibonacci+(n-(2)Fibonacci)
}

Factorial←λn{
 n=(0)⇒1;
 n-(1)Factorial(n)
}

Length←λa{
 a∅?⇒1;
 a⁰Length+(1)
}

А вот проверка замкнутости графа, реализованного на хеш-таблицах.

GraphAcyclic?←λg{
 gτ∅?⇒⊤;
 g#λk,v{v∅?}∃(|)~⇒⊥;
 g GraphTearLeaf(
   g#λk,v{v∅?⇒k;⊥}ω∃(=⊥~)
 ) GraphAcyclic?
}

GraphTearLeaf←λg,l{
 gτ↓!(l)
 g#λk,v{gτset!(vπ↓(=(l))))}
 g
}

Я показывал наброски дизайна хенланга нескольким людям, их все пугали странные символы. Ничего страшного, для каждого странного символа можно предоставить синоним словом :)

GraphAcyclic? assign function g {
 g table-empty? then true
 else g map function k, v {
   v null?
 } exists (identity) then false
 else g GraphTearLeaf (
   g map function k, v {
     v null? then k else false
   } find (= false not)
 ) GraphAcyclic?
}

GraphTearLeaf assign
function g, l {
 g table-delete! (l)
 g map function k, v {
   g table-set! (
     v remove-matching (= (1))
   )
 }
 g
}

Буду иногда и про хенланг писать. Мне крайне интересно любое мнение про эти примеры кода :)

P. S. После публикации обнаружил, что в телеграме на компе плохой моноширинный шрифт для математических знаков :(
источник

VS

Victor Sapiens in rust_offtopic
Ну и таки да, у блекстара была самая прикольная девушка в сериале. Она прям ми ми ми 😁
источник

NL

Nick Linker in rust_offtopic
Pavel
Придумал крутой язык программирования henlang.

Henlang — сокращение от incomprehensible language, непостижимый язык. Также, hen это курица, то есть курояз. Также, 変 (хэн) это странный по-японски, то есть странный язык.

Вот несколько примеров кода на хенланге: вычисление n-ного числа Фибоначчи, вычисление факториала n, длина связанного списка.

Fibonacci←λn{
 1ι∋n⇒nι;
 n-(1)Fibonacci+(n-(2)Fibonacci)
}

Factorial←λn{
 n=(0)⇒1;
 n-(1)Factorial(n)
}

Length←λa{
 a∅?⇒1;
 a⁰Length+(1)
}

А вот проверка замкнутости графа, реализованного на хеш-таблицах.

GraphAcyclic?←λg{
 gτ∅?⇒⊤;
 g#λk,v{v∅?}∃(|)~⇒⊥;
 g GraphTearLeaf(
   g#λk,v{v∅?⇒k;⊥}ω∃(=⊥~)
 ) GraphAcyclic?
}

GraphTearLeaf←λg,l{
 gτ↓!(l)
 g#λk,v{gτset!(vπ↓(=(l))))}
 g
}

Я показывал наброски дизайна хенланга нескольким людям, их все пугали странные символы. Ничего страшного, для каждого странного символа можно предоставить синоним словом :)

GraphAcyclic? assign function g {
 g table-empty? then true
 else g map function k, v {
   v null?
 } exists (identity) then false
 else g GraphTearLeaf (
   g map function k, v {
     v null? then k else false
   } find (= false not)
 ) GraphAcyclic?
}

GraphTearLeaf assign
function g, l {
 g table-delete! (l)
 g map function k, v {
   g table-set! (
     v remove-matching (= (1))
   )
 }
 g
}

Буду иногда и про хенланг писать. Мне крайне интересно любое мнение про эти примеры кода :)

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

p

polunin.ai in rust_offtopic
кек, иногда лишние проверки повышают производительность
источник

NL

Nick Linker in rust_offtopic
- компилируемый или интерпретируемый?
- значения мутабельные по умолчанию?
- gc или не-gc?
- статическая или динамическая система типов? Если статическая, то какие гарантии она даёт?
- объектно-ориентированный или нет?
- есть обобщённые типы и параметрический полиморфизм или нет?

Вот эти вопросы важны, а вывалить непохожий синтаксис каждый может. Позволю себе даже вот такое категорическое высказывание:
Если единственное, что привносит новый язык программирования - это синтаксис, то его можно смело отправлять в топку, он ничего принципиально нового в программирование не даст.
источник

SK

Sergey Korotkov in rust_offtopic
Nick Linker
- компилируемый или интерпретируемый?
- значения мутабельные по умолчанию?
- gc или не-gc?
- статическая или динамическая система типов? Если статическая, то какие гарантии она даёт?
- объектно-ориентированный или нет?
- есть обобщённые типы и параметрический полиморфизм или нет?

Вот эти вопросы важны, а вывалить непохожий синтаксис каждый может. Позволю себе даже вот такое категорическое высказывание:
Если единственное, что привносит новый язык программирования - это синтаксис, то его можно смело отправлять в топку, он ничего принципиально нового в программирование не даст.
неистово плюсую.
источник

p

polunin.ai in rust_offtopic
Nick Linker
- компилируемый или интерпретируемый?
- значения мутабельные по умолчанию?
- gc или не-gc?
- статическая или динамическая система типов? Если статическая, то какие гарантии она даёт?
- объектно-ориентированный или нет?
- есть обобщённые типы и параметрический полиморфизм или нет?

Вот эти вопросы важны, а вывалить непохожий синтаксис каждый может. Позволю себе даже вот такое категорическое высказывание:
Если единственное, что привносит новый язык программирования - это синтаксис, то его можно смело отправлять в топку, он ничего принципиально нового в программирование не даст.
новый синтаксис может ускорить парсинг языка, что для некоторых языков существенно
источник

SP

Stanislav Popov in rust_offtopic
λоλторт
для копирования объекта всего лишь то надо сериализовать его в жсон и десериализовать
я вчера так линзы изобрел
источник

NL

Nick Linker in rust_offtopic
polunin.ai
новый синтаксис может ускорить парсинг языка, что для некоторых языков существенно
Если ты про гошечку, то это была далеко не главная цель, а такой побочный квест. Если уж крафтить новый язык, то мол давайте ещё и вот этот момент запилим.
источник

NL

Nick Linker in rust_offtopic
Приведу пример: CoffeScript - вот язык, который от js отличается только парсером. Где он сейчас?
источник

SP

Stanislav Popov in rust_offtopic
до сих пор не постили годноту https://www.youtube.com/watch?v=y8OnoxKotPQ
источник

SP

Stanislav Popov in rust_offtopic
или это я слоу
источник

B

Bogdan in rust_offtopic
Pavel
это нормальный язык в который зачем-то добавили венгерскую нотацию для типов
Потому что меня бесит когда не понятно где класс, а где интерфейс
источник

P

Pavel in rust_offtopic
Nick Linker
В чём отличительная черта, ну кроме bastardized синтаксиса?
ты знаешь, куда писать. (не мне)
источник

NL

Nick Linker in rust_offtopic
Bogdan
Потому что меня бесит когда не понятно где класс, а где интерфейс
Мда. Ты в блокноте пишешь?
Когда соглашения о наименовании и форматировании отличаются от тех, которые приняты в стандартной библиотеке, то код проекта будет напоминать ирландское рагу, за которое хочется взять линейку и отхлестать автора по жопе.
источник

P

Pavel in rust_offtopic
Bogdan
Потому что меня бесит когда не понятно где класс, а где интерфейс
ну, это странная потребность, но если вдруг надо:
источник

NL

Nick Linker in rust_offtopic
Bogdan
Потому что меня бесит когда не понятно где класс, а где интерфейс
Хочешь хинт? Интерфейс обычно показывает, что можно сделать с объектами классов: Runnable, Disposable, Serializable.
Классы же называются именами существительными: MyFavouriteAbstractProxyFactory.
И незачем выдумывать соглашения, из-за которых потом люди после тебя будут вынуждены биться головой о стол, хотеть взять топор и узнать, где ты живёшь.
источник

NL

Nick Linker in rust_offtopic
Pavel
ну, это странная потребность, но если вдруг надо:
Да👍
источник