Re[22]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:20
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>>>>> DoubleApply, //:=: что?


A>>>>Вообще, это у него Swap — переменные меняются значениями


M>>>да, но нам-то это неизвестно и если джля этого надо копаться в коде, то тут явно ультрапонятностью не пахнет


PC_>>Если ты знаешь паскалевское :=, и понимаешь что это присвоить.




PC_>>До видимо :=: это обмен значениями между переменными. Нелогично и непонятно ?


M>Нет, неочевидно. Потому что это подряд два оператора — Apply (который на самом деле assign) и NotNull. Если для того, чтобы понять язык, надо лезть в код, его реализующий, это явно не понятный язык.



M>По поводу других вопросов по операторам ответы будут?


Чтото я тебя не понял.
Ану давай еще раз.

A:=B Присвоили значение В переменной А
A:=:B Взаимное присваивание

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

На счет других операторов они по семантике на 90% соответствуют Сишным. Остальные операторы я обьяснял уже, другие позже обьясню.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[16]: Ультракороткий язык программирования RS
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 22.12.10 09:21
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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


L>>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>>И правильно ли я понимаю, что выражение "1..5" означает "создать массив из пяти элементов, в котором X[i] = i"? Но ведь тогда, для того, чтобы посчитать факториал 1048576, ваша программа отожрет 1 мегабайт памяти только для формирования индексов, в то время, как в том же немерле можно обойтись по старинке:


KV>>>def factorial(n){ | 0 | 1 = > 1 | _ => factorial(n — 1)}


L>>Если приведенный код — правильный, то функцию можно упростить до

L>>def factorial(n){ 1 }

L>>)


KV>n * factorial(n — 1) конечно же


И отожрет мегабайт памяти на стек
Re[19]: Ультракороткий язык программирования RS
От: Lloyd Россия  
Дата: 22.12.10 09:23
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>>>Ты лучше на выделенное ответь


PC_>>Я на глупые вопросы не отвечаю, путем не сложных арифметических прикидов можно понять, что результат факториала от числа 1048576 не вместит в зазипованном архиве никакой компьютер, ну или может вместит но будет оооооооочень длинным



M>Ответь на неглупый. Вернее перепиши его так, чтобы он стал эквивалентен приведенному коду — без дикого жора памяти


Приведенный код ничем не лучше в плане потребления памяти (хвостовой рекурсии-то нету). Пожалуй даже хуже, т.к. стек по размеру мягко говоря обычно меньше размера доступной оперативки.
Re[23]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:24
Оценка:
Здравствуйте, avpavlov, Вы писали:


PC_>>Тогда у 1С мегапонятный говнокод, там все пишется на русском языке, даж не на английском


A>а 1С не ультраприближен к естественнному. При этом я тебя уверяю, что 1с-овский "говнокод" читается на порядок легче твоего


Не стоит настаивать.
Просто опять идет жесткая подмена понятий, давайте брейнфак комманды снабдим алиасами:

"Переместить каретку вправо"
"Переместить каретку влево"
"Прибавить один"

Чудные естественные программы получатся, хорошо читаемые и всетакое !



Переместить каретку вправо
Переместить каретку влево
Прибавить один
Переместить каретку влево
Переместить каретку влево
Прибавить один
Прибавить один
Прибавить один
Переместить каретку влево



Ну что же тут не понятного. Разве не понятно что делает эта программа, всеже на русском написано !
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[23]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:24
Оценка:
M>>>>>> DoubleApply, //:=: что?

A>>>>>Вообще, это у него Swap — переменные меняются значениями


M>>>>да, но нам-то это неизвестно и если джля этого надо копаться в коде, то тут явно ультрапонятностью не пахнет


PC_>>>Если ты знаешь паскалевское :=, и понимаешь что это присвоить.




PC_>>>До видимо :=: это обмен значениями между переменными. Нелогично и непонятно ?


M>>Нет, неочевидно. Потому что это подряд два оператора — Apply (который на самом деле assign) и NotNull. Если для того, чтобы понять язык, надо лезть в код, его реализующий, это явно не понятный язык.



M>>По поводу других вопросов по операторам ответы будут?


PC_>Чтото я тебя не понял.

PC_>Ану давай еще раз.

PC_>A:=B Присвоили значение В переменной А

PC_>A:=:B Взаимное присваивание

PC_>Не понимаю, но уверен однажды увидивший это человек запомнит это навсегда. Как вот тот парень который вспомнил что я вчера этот оператор упоминал. Оператор очень просто и ультраклассно запоминается.


но он не является "ультрапонятным", иначе он был бы понятен сразу. Более того, как рядом описано, имея на руках операторы ":", "=", ":=" оператор ":=:" не выводится никак

PC_>На счет других операторов они по семантике на 90% соответствуют Сишным.


В С нет операторов, которые я перечислил:

public enum OperationType
{
   Agregate,       //\    аггрегирование чего?
   Generate,       //..   генерация чего?
   Apply,          //:=   может все таки assign?
   DoubleApply,    //:=:  что?
   AddApply,       //,=   что?
   Dimension,      //D    что за размерность?
   Add,            //,    добавление чего?
   Compare,        //?    сравнение чего?
   CompareInNot,   //?:   что?
   NotNull,        //:    что notnull?
   Next,           //;    next что?
   Point,          //.    что?
   Rational        //./   что?
}


PC_>Остальные операторы я обьяснял уже, другие позже обьясню.


Ты объяснял, по сути, только присваивание, запятую и fold left. Более того, тупа из перечисления этих операций не следует, что понятно, что они делают, как они используются, и какой у них приоритет


dmitriid.comGitHubLinkedIn
Re[21]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:27
Оценка:
PC_>>Как это сделал с рациональными числами, архитектура у меня позволяет еще не такое делать,
M>рабочие примеры в студию

Чо, яж приводил рабочие примеры, помойму во втором посте этой темы.

Рациональные одна треть две трети пишутся очень просто !

Рациональные
1./3
2./3


Флоаты
1.3
2.3


Целые
1
2



Ну и операции всяки разные там, ну как обычно +,-. Рассказывать чо они делают ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[20]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:33
Оценка:
M>>>>Ты лучше на выделенное ответь

PC_>>>Я на глупые вопросы не отвечаю, путем не сложных арифметических прикидов можно понять, что результат факториала от числа 1048576 не вместит в зазипованном архиве никакой компьютер, ну или может вместит но будет оооооооочень длинным



M>>Ответь на неглупый. Вернее перепиши его так, чтобы он стал эквивалентен приведенному коду — без дикого жора памяти


L>Приведенный код ничем не лучше в плане потребления памяти (хвостовой рекурсии-то нету). Пожалуй даже хуже, т.к. стек по размеру мягко говоря обычно меньше размера доступной оперативки.


Да, что-то я промахнулся

Правда, если туда добавить хвостовую рекурсию...

factorial( N ) ->
  factorial( N, 1 ).

% tail-recursive:
factorial( 0, Product ) ->
  Product;
factorial( N, Product ) ->
  factorial( N - 1, N * Product ).


Память будет тратиться только на собственно результат Миллион я не высичлял, но 100 000 вполне спокойно обрабатывает.

Думаю, на PC_2 фиг сделаешь.


dmitriid.comGitHubLinkedIn
Re[9]: Ультракороткий язык программирования RS
От: Lloyd Россия  
Дата: 22.12.10 09:36
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Свои операторы может определять и С++,


Вообще-то не может
Re[24]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:36
Оценка:
По заказам прихожан, Мануал в студию !

M>
M>public enum OperationType
M>{
M>   Agregate,       //\    аггрегирование чего? -> Курили пример с факториалом array\*
M>   Generate,       //..   генерация чего?      -> Массивов ясен перец, 1..5 не забыл ?
M>   Apply,          //:=   может все таки assign? -> присваивание
M>   DoubleApply,    //:=:  что?                   -> взаимное присваивание или свап, как тут уже говорили
M>   AddApply,       //,=   что?                   -> было, тоже что += только добавляет элемент в конец массива
M>   Dimension,      //D    что за размерность?    -> 5D5 двумерный массив 5 на 5
M>   Add,            //,    добавление чего?       -> опять было 1,2,3 вернет массив из трех элементов
M>   Compare,        //?    сравнение чего?        -> Оператор сравнения 1<2?True:False
M>   CompareInNot,   //?:   что?                   -> Тоже самое 1<2 ?: False
M>   NotNull,        //:    что notnull?           -> Operand1:Operand2 из двух возвращает ненулевой операнд
M>   Next,           //;    next что?              -> просто конец строки
M>   Point,          //.    что?                   -> флоаты 1.5
M>   Rational        //./   что?                   -> рациональные 1./3
M>}
M>
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[10]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:37
Оценка:
Здравствуйте, Lloyd, Вы писали:

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


PC_>>Свои операторы может определять и С++,


L>Вообще-то не может


Вроде может, ну переопределять так уж точно
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[22]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:37
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>>>Как это сделал с рациональными числами, архитектура у меня позволяет еще не такое делать,


Здесь фозратимся к контексту

Перепиши пример с факториалом так, чтобы он не требовал жора памяти для составления индексов массива. Ты же сам пишешь:

Я то напишу, не вопрос и смогу работать с числами которые имеют, например, миллиард разрядов.
Как это сделал с рациональными числами, архитектура у меня позволяет еще не такое делать


M>>рабочие примеры в студию


PC_>Чо, яж приводил рабочие примеры, помойму во втором посте этой темы.


PC_>Рациональные одна треть две трети пишутся очень просто !


PC_>Рациональные

PC_>
PC_>1./3
PC_>2./3
PC_>


PC_>Флоаты

PC_>
PC_>1.3
PC_>2.3
PC_>


PC_>Целые

PC_>
PC_>1
PC_>2
PC_>



PC_>Ну и операции всяки разные там, ну как обычно +,-. Рассказывать чо они делают ?


Для этого есть отдельная подветка. В той подветке объясни следующее:
— Есть оператор точка . (что он делает?)
— Есть оператор деление /
— Естьоператор rational ./

В коде 1./2 какой из трех используется и почему


dmitriid.comGitHubLinkedIn
Re[11]: Ультракороткий язык программирования RS
От: Lloyd Россия  
Дата: 22.12.10 09:38
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>>>Свои операторы может определять и С++,


L>>Вообще-то не может


PC_>Вроде может,


Нет, не может

PC_ну переопределять так уж точно

Это может.
Re[21]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 22.12.10 09:39
Оценка: :)
Здравствуйте, Mamut, Вы писали:

M>>>>>Ты лучше на выделенное ответь


PC_>>>>Я на глупые вопросы не отвечаю, путем не сложных арифметических прикидов можно понять, что результат факториала от числа 1048576 не вместит в зазипованном архиве никакой компьютер, ну или может вместит но будет оооооооочень длинным



M>>>Ответь на неглупый. Вернее перепиши его так, чтобы он стал эквивалентен приведенному коду — без дикого жора памяти


L>>Приведенный код ничем не лучше в плане потребления памяти (хвостовой рекурсии-то нету). Пожалуй даже хуже, т.к. стек по размеру мягко говоря обычно меньше размера доступной оперативки.


M>Да, что-то я промахнулся


M>Правда, если туда добавить хвостовую рекурсию...


M>
M>factorial( N ) ->
M>  factorial( N, 1 ).

M>% tail-recursive:
M>factorial( 0, Product ) ->
M>  Product;
M>factorial( N, Product ) ->
M>  factorial( N - 1, N * Product ).
M>


M>Память будет тратиться только на собственно результат Миллион я не высичлял, но 100 000 вполне спокойно обрабатывает.


M>Думаю, на PC_2 фиг сделаешь.


Чо-чо, на РС не сделаешь ?

А так

Sum:=1
Sum*=(I<1048576?I)


?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[24]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:39
Оценка:
PC_>>>Тогда у 1С мегапонятный говнокод, там все пишется на русском языке, даж не на английском

A>>а 1С не ультраприближен к естественнному. При этом я тебя уверяю, что 1с-овский "говнокод" читается на порядок легче твоего


PC_>Не стоит настаивать.

PC_>Просто опять идет жесткая подмена понятий, давайте брейнфак комманды снабдим алиасами:

PC_>"Переместить каретку вправо"

PC_>"Переместить каретку влево"
PC_>"Прибавить один"

PC_>Чудные естественные программы получатся, хорошо читаемые и всетакое !


понимаешь ли.

[1..2].foldLeft(любая_функция)


горазддо понятнее, чем

1..2\*


особенно если кода больше, чем одна строчка


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

PC_>>>>Тогда у 1С мегапонятный говнокод, там все пишется на русском языке, даж не на английском


A>>>а 1С не ультраприближен к естественнному. При этом я тебя уверяю, что 1с-овский "говнокод" читается на порядок легче твоего


PC_>>Не стоит настаивать.

PC_>>Просто опять идет жесткая подмена понятий, давайте брейнфак комманды снабдим алиасами:

PC_>>"Переместить каретку вправо"

PC_>>"Переместить каретку влево"
PC_>>"Прибавить один"

PC_>>Чудные естественные программы получатся, хорошо читаемые и всетакое !


M>понимаешь ли.


M>
M>[1..2].foldLeft(любая_функция)
M>


да не. Слишком много букв

M>горазддо понятнее, чем


M>
M>1..2\*
M>


M>особенно если кода больше, чем одна строчка


Обратный слеш напоминает блок который развернут в другую сторону и пытается "схлопнуть" то что слева.
Так что ультрапонятно и ультракоротко. Кстате раньше этот оператор назывался по другому, но теперь все пучком
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[25]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:45
Оценка: +1
PC_>По заказам прихожан, Мануал в студию !

Обычно это то, с чего начинается объяснение языка, вообще-то.

M>>
M>>public enum OperationType
M>>{
M>>   Agregate,       //\    аггрегирование чего? -> Курили пример с факториалом array\*
M>>   Generate,       //..   генерация чего?      -> Массивов ясен перец, 1..5 не забыл ?
M>>   Apply,          //:=   может все таки assign? -> присваивание
M>>   DoubleApply,    //:=:  что?                   -> взаимное присваивание или свап, как тут уже говорили
M>>   AddApply,       //,=   что?                   -> было, тоже что += только добавляет элемент в конец массива
M>>   Dimension,      //D    что за размерность?    -> 5D5 двумерный массив 5 на 5
M>>   Add,            //,    добавление чего?       -> опять было 1,2,3 вернет массив из трех элементов
M>>   Compare,        //?    сравнение чего?        -> Оператор сравнения 1<2?True:False
M>>   CompareInNot,   //?:   что?                   -> Тоже самое 1<2 ?: False
M>>   NotNull,        //:    что notnull?           -> Operand1:Operand2 из двух возвращает ненулевой операнд
M>>   Next,           //;    next что?              -> просто конец строки
M>>   Point,          //.    что?                   -> флоаты 1.5
M>>   Rational        //./   что?                   -> рациональные 1./3
M>>}
M>>


мде.

— next не является оператором
— point и rational не являются операторами
— .. будет генерировать строки?


помимо этого:
apply срочно менять на assign
addapply на append
doubleapply на swap


dmitriid.comGitHubLinkedIn
Re[22]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:48
Оценка:
M>>Правда, если туда добавить хвостовую рекурсию...

M>>
M>>factorial( N ) ->
M>>  factorial( N, 1 ).

M>>% tail-recursive:
M>>factorial( 0, Product ) ->
M>>  Product;
M>>factorial( N, Product ) ->
M>>  factorial( N - 1, N * Product ).
M>>


M>>Память будет тратиться только на собственно результат Миллион я не высичлял, но 100 000 вполне спокойно обрабатывает.


M>>Думаю, на PC_2 фиг сделаешь.


PC_>Чо-чо, на РС не сделаешь ?


PC_>А так


PC_>
PC_>Sum:=1
PC_>Sum*=(I<1048576?I)
PC_>


PC_>?

PC_>

О, внезапно появился код. Только он нерабочий.

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


В итоге сумма будет равна нулю.

Что ведет нас к этим вопросам: http://rsdn.ru/forum/philosophy/4087857.1.aspx
Автор: Mamut
Дата: 21.12.10


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

M>>Память будет тратиться только на собственно результат Миллион я не высичлял, но 100 000 вполне спокойно обрабатывает.


M>>Думаю, на PC_2 фиг сделаешь.


PC_>Чо-чо, на РС не сделаешь ?


PC_>А так


PC_>
PC_>Sum:=1
PC_>Sum*=(I<1048576?I)
PC_>

Operators: S1
Object reference not set to an instance of an object.
================
Sum:=1

Sum:=1
...um:=1
......1
S1


S:=1
S*=(I<1048576?I)


Operators: 1Expression
Object reference not set to an instance of an object.
================
S:=1

S:=1
...S:=1
......1
S*=(I<1048576?I)
I=0;
S*=Expression
...1*=
......1
1Expression

Re[26]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 22.12.10 09:50
Оценка:
Здравствуйте, PC_2, Вы писали:

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


PC_>>>>>Тогда у 1С мегапонятный говнокод, там все пишется на русском языке, даж не на английском


A>>>>а 1С не ультраприближен к естественнному. При этом я тебя уверяю, что 1с-овский "говнокод" читается на порядок легче твоего


PC_>>>Не стоит настаивать.

PC_>>>Просто опять идет жесткая подмена понятий, давайте брейнфак комманды снабдим алиасами:

PC_>>>"Переместить каретку вправо"

PC_>>>"Переместить каретку влево"
PC_>>>"Прибавить один"

PC_>>>Чудные естественные программы получатся, хорошо читаемые и всетакое !


M>>понимаешь ли.


M>>
M>>[1..2].foldLeft(любая_функция)
M>>


PC_>да не. Слишком много букв



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


M>>горазддо понятнее, чем


M>>
M>>1..2\*
M>>


M>>особенно если кода больше, чем одна строчка


PC_>Обратный слеш напоминает блок который развернут в другую сторону и пытается "схлопнуть" то что слева.


Что за бредятина? Никакие блоки он не напоминает

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


Пофиг, как он назывался и называется. Мы же не название его пишем.


dmitriid.comGitHubLinkedIn
Re[26]: Ультракороткий язык программирования RS
От: Lloyd Россия  
Дата: 22.12.10 09:51
Оценка: +1
Здравствуйте, PC_2, Вы писали:

M>>
M>>[1..2].foldLeft(любая_функция)
M>>


PC_>да не. Слишком много букв


M>>горазддо понятнее, чем


M>>
M>>1..2\*
M>>


M>>особенно если кода больше, чем одна строчка


PC_>Обратный слеш напоминает блок который развернут в другую сторону и пытается "схлопнуть" то что слева.

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

А как будет выглядеть правый fold?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.