Re[9]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 21.12.10 12:49
Оценка: +6
PC_>>>Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:

PC_>>>//7. квик сорт

PC_>>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>>> S.(I*2+1):
PC_>>> S.(I*2+2)
PC_>>> ),=S.I.J

PC_>>>Это ультрапонятный короткий и лаконичный код


M>>Что в нем понятного? Такая же невменяемая каша. Имхо


PC_>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.


При желаении можно понять, что там происходит. Но он не является понятным.

Что есть I? Что есть J?
E(Expr),=Expr2
       ^^-----------трэш, угар и содомия (с)


X.Len — Это доступ к элементу массива? Досутп к свойству элемента? Вызов метода объекта?

И т.п.


ЗЫ. Но надо отдать должное, автор языка не просто теоретизирует, а пишет интерпретатор — это уже хорошо


dmitriid.comGitHubLinkedIn
Re[10]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.12.10 12:54
Оценка: 17 (1) +1 -1
Здравствуйте, Mamut, Вы писали:

M>ЗЫ. Но надо отдать должное, автор языка не просто теоретизирует, а пишет интерпретатор — это уже хорошо

То что выкладывает примеры, которые он может написать за 30 сек, но которые не работают — это не очень хорошо.
А если посмотреть на ссылку в профиле автора, то можно там увидеть заброшенный шапкозакидательский проект. Это тоже плохой знак.
Re[11]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 21.12.10 12:54
Оценка: +5
PC_>>>Ну это чисто твое субьективное мнение.
PC_>>>Даже если у тебя на листике будет код той программы, 2 минуты тебе не хватит чтобы все эти закарючки просто без ошибочно набрать.
PC_>>>У меня же квик сорт можно написать за 2 минуты, с нуля. На пузырек мне например хватит 30 секунд. И это факт, я считаю.

V_>>На любом популярном языке можно написать квиксорт за 2 минуты. И пузырек за 30 секунд. При чем тут вообще синтаксис?


PC_>


qsort1([]) ->
    [];
qsort1([H | T]) -> 
    qsort1([ X || X <- T, X < H ])
     ++
    [H]
     ++
    qsort1([ X || X <- T, X >= H ]
).


Зная, что такое quicksort и самая малость Erlang'а, пишется за 2 минуты. Причем понятен любому, знакомому с pattern matching'ом и list comprehensions.


dmitriid.comGitHubLinkedIn
Re[7]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.12.10 12:54
Оценка: +3
Здравствуйте, PC_2, Вы писали:

"Все должно быть настолько проще, насколько возможно, но не проще" (с).

PC_>//7. квик сорт

PC_>E ( S.I.J<S.I.(S.I.Len/2)?
PC_> S.(I*2+1):
PC_> S.(I*2+2)
PC_> ),=S.I.J

Вот матформула быстрой сортировки:



Вот код на nemerle, решающий эту задачу (вместе с формулой взят отсюда):

def quicksort(l)
{
    | [] => [];
    | x :: xs  => quicksort( $[ y | y in xs, y <= x ] ) + [x] + quicksort( $[y | y in xs, y > x] );
}


haskell, F#, python, scala... дают примерно такой же по лаконичности код, схожий с математической записью этого алгоритма.

Что даст еще большее упрощение записи алгоритма, по сравнению с его математическим представлением ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[10]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 12:57
Оценка: -1 :))
Здравствуйте, Mamut, Вы писали:

PC_>>>>Например Квик Сорт у меня выглядит примерно вот так, хоть пока и не работает в трансляторе:


PC_>>>>//7. квик сорт

PC_>>>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>>>> S.(I*2+1):
PC_>>>> S.(I*2+2)
PC_>>>> ),=S.I.J

PC_>>>>Это ультрапонятный короткий и лаконичный код


M>>>Что в нем понятного? Такая же невменяемая каша. Имхо


PC_>>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.


M>При желаении можно понять, что там происходит. Но он не является понятным.


M>Что есть I? Что есть J?



I и J это счетчики, от дуля до хз сколько.
Итак, я избавил программистов писать постоянный
Говнокод вроде Сишного

for(int i=0; i<bla; i++)
for(int j=0; j<bla; j++)
arr[i][j] = 5;


На моем языке это автоматически превращается в ультрачитаемый код вида

arr.I.J := 5


Как видим профиты налицо.

M>
M>E(Expr),=Expr2
M>       ^^-----------трэш, угар и содомия (с)
M>


Что значит трешь.
Это ультрапонятная операция прибавить еще один элемент к массиву

, — это операция конкатенации элементов. Например 1,2,3 получим массив из трех элементов
А ,= это чтото вроде +=. Тоесть 1,2,3 ,= 4 получим 1,2,3,4. Все очень и очень просто !


M>X.Len — Это доступ к элементу массива? Досутп к свойству элемента? Вызов метода объекта?


M>И т.п.


Лен это Лен товарищи, это длина массива. Революции я не делаю.

arr.Len // дает длину массива arr.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[8]: Ультракороткий язык программирования RS
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.12.10 12:58
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Что даст еще большее упрощение записи алгоритма, по сравнению с его математическим представлением ?


Ну конечно же сокращение всего до однобуквенных идентификаторов.
Re[8]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:00
Оценка: +1 -3 :))) :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, PC_2, Вы писали:


KV>"Все должно быть настолько проще, насколько возможно, но не проще" (с).


PC_>>//7. квик сорт

PC_>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>> S.(I*2+1):
PC_>> S.(I*2+2)
PC_>> ),=S.I.J

KV>Вот матформула быстрой сортировки:


KV>


KV>Вот код на nemerle, решающий эту задачу (вместе с формулой взят отсюда):


KV>
KV>def quicksort(l)
KV>{
KV>    | [] => [];
KV>    | x :: xs  => quicksort( $[ y | y in xs, y <= x ] ) + [x] + quicksort( $[y | y in xs, y > x] );
KV>}
KV>


KV>haskell, F#, python, scala... дают примерно такой же по лаконичности код, схожий с математической записью этого алгоритма.


KV>Что даст еще большее упрощение записи алгоритма, по сравнению с его математическим представлением ?


Спасибо, но это не Квик сорт. Это его пародия.
Алгоритм Квик сорт включает перемещение элементов на "одном участке" памяти.
Тоесть не требует дополнительных ресурсов памяти.

Тоесть банально этот код не решает поставленную задачу. Точка.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:03
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Mamut, Вы писали:


M>>ЗЫ. Но надо отдать должное, автор языка не просто теоретизирует, а пишет интерпретатор — это уже хорошо

S>То что выкладывает примеры, которые он может написать за 30 сек, но которые не работают — это не очень хорошо.
S>А если посмотреть на ссылку в профиле автора, то можно там увидеть заброшенный шапкозакидательский проект. Это тоже плохой знак.

Этот проект не заброшенный.
К томуже ИДЕ для нового языка уже есть.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.12.10 13:03
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, Mamut, Вы писали:


M>>При желаении можно понять, что там происходит. Но он не является понятным.


M>>Что есть I? Что есть J?

PC_>I и J это счетчики, от дуля до хз сколько.
PC_>Лен это Лен товарищи, это длина массива. Революции я не делаю.
PC_>arr.Len // дает длину массива arr.

А что дает S.I.Len и почему S.I.J — это счетчик а S.I.Len — нет?
Re[12]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.12.10 13:05
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, samius, Вы писали:


S>>А если посмотреть на ссылку в профиле автора, то можно там увидеть заброшенный шапкозакидательский проект. Это тоже плохой знак.


PC_>Этот проект не заброшенный.

PC_>К томуже ИДЕ для нового языка уже есть.

Почему я тогда не вижу записи об успешной поддержке C#? Кстати, речь на rsdn о ней шла весной, если я не ошибаюсь?
Re[9]: Ультракороткий язык программирования RS
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.12.10 13:07
Оценка: +2
Здравствуйте, PC_2, Вы писали:

Ок, больше вопросов не имею.

PC_>Тоесть банально этот код не решает поставленную задачу. Точка.


Предлагаю со столь смелым заявлением отправляться сразу сюда: http://rsdn.ru/forum/decl/, а я пока за попкорном сбегаю. Троеточие...
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[12]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:08
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, PC_2, Вы писали:


PC_>>Здравствуйте, Mamut, Вы писали:


M>>>При желаении можно понять, что там происходит. Но он не является понятным.


M>>>Что есть I? Что есть J?

PC_>>I и J это счетчики, от дуля до хз сколько.
PC_>>Лен это Лен товарищи, это длина массива. Революции я не делаю.
PC_>>arr.Len // дает длину массива arr.

S>А что дает S.I.Len и почему S.I.J — это счетчик а S.I.Len — нет?


S это двумерный массив

S.I.J перебирает все элементы массива
А S.I.Len — возвращает длину одной из размерностей массива.

Просто я выбросил вотето Сишное arr[i]
Зачем при доступу к массиву использовать две скобки ?
arr.i при I — целое число, это доступ по индексу.

Тоесть точка это идентификатор доступа, универсальный.
Можно еще вот так записать arr.(1+1) даст второй элемент массива
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[13]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:10
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, PC_2, Вы писали:


PC_>>Здравствуйте, samius, Вы писали:


S>>>А если посмотреть на ссылку в профиле автора, то можно там увидеть заброшенный шапкозакидательский проект. Это тоже плохой знак.


PC_>>Этот проект не заброшенный.

PC_>>К томуже ИДЕ для нового языка уже есть.

S>Почему я тогда не вижу записи об успешной поддержке C#? Кстати, речь на rsdn о ней шла весной, если я не ошибаюсь?


Попался фриланц по вкусной цене, не до фрии проектов.
Но иногда и это дело нужно двигать
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 21.12.10 13:13
Оценка: +2
M>>Что есть I? Что есть J?


PC_>I и J это счетчики, от нуля до хз сколько.

PC_>Итак, я избавил программистов писать постоянный
PC_>Говнокод вроде Сишного

PC_>
PC_>for(int i=0; i<bla; i++)
PC_>for(int j=0; j<bla; j++)
PC_>arr[i][j] = 5;
PC_>


PC_>На моем языке это автоматически превращается в ультрачитаемый код вида


PC_>
PC_>arr.I.J := 5
PC_>


PC_>Как видим профиты налицо.


Чему равно I и J в этой строке? Как задать начальное число счетчику? Как указать шаг счетчика? Как указать другие названия счетчикам? Как задается цикл вообще?.


M>>
M>>E(Expr),=Expr2
M>>       ^^-----------трэш, угар и содомия (с)
M>>


PC_>Что значит трешь.

PC_>Это ультрапонятная операция прибавить еще один элемент к массиву

Ничего в ней нет ультрапонятного

PC_>, — это операция конкатенации элементов. Например 1,2,3 получим массив из трех элементов

PC_>А ,= это чтото вроде +=. Тоесть 1,2,3 ,= 4 получим 1,2,3,4. Все очень и очень просто !

Если ,= это "вроде" +=, то почему не оставить +=?


M>>X.Len — Это доступ к элементу массива? Досутп к свойству элемента? Вызов метода объекта?


M>>И т.п.


PC_>Лен это Лен товарищи, это длина массива. Революции я не делаю.


PC_>arr.Len // дает длину массива arr.


То есть прсто встроенное свойство, как .length в JavaScript'е


dmitriid.comGitHubLinkedIn
Re[10]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:14
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, PC_2, Вы писали:


KV>Ок, больше вопросов не имею.


PC_>>Тоесть банально этот код не решает поставленную задачу. Точка.


KV>Предлагаю со столь смелым заявлением отправляться сразу сюда: http://rsdn.ru/forum/decl/, а я пока за попкорном сбегаю. Троеточие...


Набросайте Шахматы на Немерле, я погляжу.
Цена вопроса 300 байт — 1 кб, хватит уже играться в детские сортировки.

Хотя и с детскими программками у Немерле не все олл райт, для замера органа вот типовые решения

//1. факториал
E 1..5\*

//2. фибоначчи
E X:=1..10
E X.(I+2):=X.I+X.(I+1)
E X

//3. сортировка пузырьком
E X:=1..10
E X.I>X.J?X.I:=:X.J
E X

//4. палиндром
E X:=1,2,3,2,1
E B:=True
E B:=B&(X.(5/2-I)=X.(5/2+I))
E B

//5. revers
E X:=1..5
E X.(5/2-I):=:X.(5/2+I))
E X

//6. проверка на простое число
E X:=6
E X%2..(X-1)\<


Хотя предлагаю тут Немерлу не вспоминать.
Просто потому что пасем несколько разные задачи.
У меня тут экспериментальный язык оторванный от архитектуры, а не сахарной шарпоподобный король макросов.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 21.12.10 13:14
Оценка: +2
PC_>>>>>//7. квик сорт
PC_>>>>>E ( S.I.J<S.I.(S.I.Len/2)?
PC_>>>>> S.(I*2+1):
PC_>>>>> S.(I*2+2)
PC_>>>>> ),=S.I.J

PC_>>>>>Это ультрапонятный короткий и лаконичный код


M>>>>Что в нем понятного? Такая же невменяемая каша. Имхо


PC_>>>Сейчас нет времени обьяснять, но обьяснить код можно на пальцах. Уж поверьте. Все очень и очень просто.


S>>Т.е. ультрапонятности все-таки нет, раз нет времени на объяснение ультрапонятных вещей.


PC_>я же ответил, что этот пример пока не работает.

PC_>Могу обьяснить любой другой пример который работает на трансляторе.

Вопрос бы не об этом. Было заявлено, что код ультрапонятен. В итоге его пришлось объяснять. Ergo, код не является ультрапонятным.

PC_>Просто Квик Сорт я хочу переписать в терминах аспектной парадигмы, которую надеюсь внедрить в этом языке.

PC_>Это позволит действительно фантастически быстро кодить программы

Примеры в студию


dmitriid.comGitHubLinkedIn
Re[3]: Ультракороткий язык программирования RS
От: night beast СССР  
Дата: 21.12.10 13:24
Оценка: +3
Здравствуйте, PC_2, Вы писали:

TB>>А как будет выглядеть интерпретатор RS, написанный на RS?


PC_>львиная доля языка еще не реализована,

PC_>сложно сказать. Но очевидно тоже в несколько раз короче.

язык не обязан быть коротким. он должен легко читаться.
и не вызывать отвращение когда кодируешь.
Re[12]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:35
Оценка: -1 :)
Здравствуйте, Mamut, Вы писали:

M>Чему равно I и J в этой строке? Как задать начальное число счетчику? Как указать шаг счетчика? Как указать другие названия счетчикам? Как задается цикл вообще?.


Оно ничему не равно.
Это счетчик, интерпретатор сам решает каким быть этому счетчику.
И если получится так что счетчик выйдет за диапазон, корректно обработает эту ошибку, избавив тебя от типичной конструкции говнокода
"Три вложенных цикла в пяти проверках на выход за диапазон массива"


M>Ничего в ней нет ультрапонятного


PC_>>, — это операция конкатенации элементов. Например 1,2,3 получим массив из трех элементов

PC_>>А ,= это чтото вроде +=. Тоесть 1,2,3 ,= 4 получим 1,2,3,4. Все очень и очень просто !

M>Если ,= это "вроде" +=, то почему не оставить +=?


Потому что операция ",=" это расширение операции "," а не "+"
Есть и операция +=, но она не работает как плюс и присвоить

M>>>X.Len — Это доступ к элементу массива? Досутп к свойству элемента? Вызов метода объекта?


M>>>И т.п.


PC_>>Лен это Лен товарищи, это длина массива. Революции я не делаю.


PC_>>arr.Len // дает длину массива arr.


M>То есть прсто встроенное свойство, как .length в JavaScript'е


Да
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[4]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 21.12.10 13:36
Оценка: -5
Здравствуйте, night beast, Вы писали:

NB>Здравствуйте, PC_2, Вы писали:


TB>>>А как будет выглядеть интерпретатор RS, написанный на RS?


PC_>>львиная доля языка еще не реализована,

PC_>>сложно сказать. Но очевидно тоже в несколько раз короче.

NB>язык не обязан быть коротким. он должен легко читаться.

NB>и не вызывать отвращение когда кодируешь.

Он легко читается.
Отсудствие "лишнего" и второстепенного кода позволяет сконцетрироваться над задачей и уменьшить количество багов.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[13]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.12.10 13:37
Оценка: +1
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, samius, Вы писали:


S>>А что дает S.I.Len и почему S.I.J — это счетчик а S.I.Len — нет?


PC_>S это двумерный массив

Что за двумерный массив в квиксорте?

PC_>S.I.J перебирает все элементы массива

PC_>А S.I.Len — возвращает длину одной из размерностей массива.

PC_>Просто я выбросил вотето Сишное arr[i]

PC_>Зачем при доступу к массиву использовать две скобки ?
PC_>arr.i при I — целое число, это доступ по индексу.

PC_>Тоесть точка это идентификатор доступа, универсальный.

PC_>Можно еще вот так записать arr.(1+1) даст второй элемент массива

Так что же отличает J от Len в выражениях S.I.J и S.I.Len?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.