Re[29]: Ультракороткий язык программирования RS
От: Antikrot  
Дата: 23.12.10 15:06
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Что мешает выложить твою версию на гуглокод?

а то ты не знаешь
Re[30]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 15:16
Оценка: :)
Здравствуйте, Antikrot, Вы писали:

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


M>>Что мешает выложить твою версию на гуглокод?

A>а то ты не знаешь

Да ладно, Мамут недавно сокрушался и раздавал негативные оценки что другие качали сорцы.
Но раз Мамут уж будет давнлоадить, то я выкладываю версию которая уже поддерживает унарные операторы

Да собственно ее уже зааплоадил
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[6]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 15:20
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>ЗЫ. Сдается мне этот топик такой тонкий троллинг Nemerle.


Ну раз снова о нем

namespace M
{

macro @\(m, op) { <[ $(m).FoldLeft(1, $op) ]> }
macro @/(op, m) { <[ $(m).FoldRight(1, $op) ]> }
macro @`(m, op) { <[ $(m).Map($op) ]> }

}

using System.Console;
using M;

def a = $[1..5] \ _*_;
WriteLine(a);

def b = _*_ / $[5,4..1];
WriteLine(b);

def c = $[1..5] ` _*2;
WriteLine($"..$c");


При чем в немерле можно любую лямбду создать, а не предопределенными только пользоваться.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 15:24
Оценка: :)
боюсь чтото о Немерле писать,
последнее высказывание мне стоило перевода темы из Философия программирования,
сюда
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[8]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 15:39
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>боюсь чтото о Немерле писать,

PC_>последнее высказывание мне стоило перевода темы из Философия программирования,
PC_>сюда

И правильно, что перенесли.
А Nemerle тут не при чем.

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

Давайте, вы начнете более реальные программы писать на RS, а не одни алгоритмы от которых толку в жизни мало.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[9]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 15:47
Оценка:
__>Ваш ультракороткий язык просто не позволяет создавать произвольной сложности лямбду, вот вы и переживаете.

я не знаю что там на счет лямбд, но Мамут мне уже все уши прожужжал что мол,
"как это ?! чтобы ФолдРайт сделать нужно дописать транслятор ???! Катастрофа, точно HQ9+"

И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса

Так может товарищи прежде чем метать камни в мой огород в своем разберитесь как следует,
что там можно сделать лямбдами, фолдами и прочьей фигней, а где вы просто тягаете готовые грушки (функции) из ядра языка.
Это кстате и к Перловке относится
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[29]: Ультракороткий язык программирования RS
От: anonymous Россия http://denis.ibaev.name/
Дата: 23.12.10 15:52
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Были сформулированы задачи последовательно,

PC_>сортировать строки по длине + первые пять элементов не сортировать.

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

PC_>Покажи свой код работающий


Показал: http://rsdn.ru/forum/flame.comp/4090436.1.aspx
Автор: anonymous
Дата: 23.12.10
. И даже несколько вариантов для чисел: http://rsdn.ru/forum/flame.comp/4090539.1.aspx
Автор: anonymous
Дата: 23.12.10


PC_>И обьясни как он работает.


Оператором splice() убираем из списка первые пять элементов и возвращаем их, сортируем оставшиеся оператором sort() и возвращаем их:
@a=(splice(@a,0,5),sort{length($a)<=>length($b)}@a);

Но вообще, это, вероятно, не оптимальный вариант по скорости, потому что приходится каждый раз вычислять длину строки. Лучше так:
@a=(splice(@a,0,5),map{$_->[1]}sort{$a->[0]<=>$b->[0]}map{[length,$_]}@a);


PC_>Это что сложно для понимания ?


Сложно уследить за твоими метаниями.
Re[10]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 16:09
Оценка: +2
Здравствуйте, PC_2, Вы писали:

__>>Ваш ультракороткий язык просто не позволяет создавать произвольной сложности лямбду, вот вы и переживаете.


PC_>я не знаю что там на счет лямбд, но Мамут мне уже все уши прожужжал что мол,

PC_>"как это ?! чтобы ФолдРайт сделать нужно дописать транслятор ???! Катастрофа, точно HQ9+"

В том и дело, что мне не надо менять компилятор для создания операций \ / `, а вам надо.
В реальном мире вы просто не сможете менять компилятор/транслятор каждый час и на каждый чих.
Посмотрите сами как часто выходят версии C# и как быстро на них переходят.

PC_>И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса

Да вот реализация:
FoldLeft
FoldLeft

Или это надо в синтаксис языка тащить ?
Можно это втащить в синтаксис, и тогда будет работать из коробки. Какие тогда аргументы будут ??

Давайте покажите как вы в файл писать будете в RS, и как читать, а потом как HTTP Server в ваш язык добавите чтобы меньше писать нужно было

PC_>Так может товарищи прежде чем метать камни в мой огород в своем разберитесь как следует,

PC_>что там можно сделать лямбдами, фолдами и прочьей фигней, а где вы просто тягаете готовые грушки (функции) из ядра языка.
PC_>Это кстате и к Перловке относится
Учитывая что большая часть конструкций в Nemerle это макросы, то само ядро там очень малое.
Как раз и ценность в библиотеках, вот для Python есть куча библиотек и это удобно, не надо писать самому 100-й раз простой HTTP Server.


Еще раз, писать алгоритм обычно нужно только один раз и после этого вы пользуетесь готовой наработкой, а не каждый раз когда вы пишете новую программу.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[30]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:13
Оценка:
A>
A>@a=(splice(@a,0,5),sort{length($a)<=>length($b)}@a);
A>


Ну это уже не 18 символов, этот код мне милее .....

Так, проведем замер органа по усовершенствованному алгоритму.

ухх... перловка, и мапы, и сплайсы и встроенные сортинги и хрен еще знает что ...
ну да ладно. итак

A>
A>@a=(splice(@a,0,5),map{$_->[1]}sort{$a->[0]<=>$b->[0]}map{[length,$_]}@a);
A>

У меня без единой встроенной структуры так ...
s.I := m.I.Len;s.(I>4?I)<s.(J>4?J)?m.I:=:m.J


Ну на глаз так процентов 40% длинее у тебя, с чем тебя и поздравляю
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[11]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:22
Оценка: -1 :))
__>В том и дело, что мне не надо менять компилятор для создания операций \ / `, а вам надо.
__>В реальном мире вы просто не сможете менять компилятор/транслятор каждый час и на каждый чих.
__>Посмотрите сами как часто выходят версии C# и как быстро на них переходят.

Слушайте, макросы разработчики похоронили в Сишном коде, они делали его плохо читаемым.
Потому в Шарпе от макросов даже след простыл. Про них просто решили забыть.
А вот Немерла решила о них вспомнить, а мы смотрим на это нагромождение шифтовых символов.
А потом вы сидите и удивляетесь, как это Немерла которой уже немало годков все еще не в мейнстриме.

PC_>>И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса

__>Да вот реализация:
__>FoldLeft
__>FoldLeft

Не хилая такая реализация то ....

__>Давайте покажите как вы в файл писать будете в RS, и как читать, а потом как HTTP Server в ваш язык добавите чтобы меньше писать нужно было


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

__>Еще раз, писать алгоритм обычно нужно только один раз и после этого вы пользуетесь готовой наработкой, а не каждый раз когда вы пишете новую программу.


Ну зачем вы плетете свои библиотеки, ну кому это интересно.
Не смешите меня, вы что боксинг унбоксинг и реплейс по коду тестируете ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[12]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:27
Оценка: -1
И что за замыливание глаз

/*
* Copyright (c) 2003-2008 The University of Wroclaw.
* All rights reserved.
....

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

Ато ядро языка понимаете ли.
Ато я ведь тоже могу ядром назвать
вотето

 public void Execute()
        {
            m_output = "";
            m_error = string.Empty;
            m_log.Clear();

            if (this.Count > 0)
            {
                foreach (Line line in this)
                {
                    try
                    {
                        Token token = line.Execute();
                        m_output += token.ToString() + "\r\n";
                    }
                    catch (Exception ex)
                    {
                        m_error = ex.Message;
                        break;
                    }
                }
            }
            else
            {
                m_output = "Hello World !";
            }
        }


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

A>>
A>>@a=(splice(@a,0,5),map{$_->[1]}sort{$a->[0]<=>$b->[0]}map{[length,$_]}@a);
A>>

PC_>У меня без единой встроенной структуры так ...
PC_>
PC_>s.I := m.I.Len;s.(I>4?I)<s.(J>4?J)?m.I:=:m.J
PC_>


PC_>Ну на глаз так процентов 40% длинее у тебя, с чем тебя и поздравляю

Ты опять нас кормишь нерабочим кодом?

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

Отмазка про старую Light версию больше не проканает
Re[32]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:30
Оценка:
A>>>
A>>>@a=(splice(@a,0,5),map{$_->[1]}sort{$a->[0]<=>$b->[0]}map{[length,$_]}@a);
A>>>


PC_>>Ну на глаз так процентов 40% длинее у тебя, с чем тебя и поздравляю

S>Ты опять нас кормишь нерабочим кодом?
S>

S>Index was out of range. Must be non-negative and less than the size of the collection.
S>Parameter name: index

S>Отмазка про старую Light версию больше не проканает

В смысле, как и код перловки код исключает декларацию массива, потому и упало ...

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

PC_>В смысле, как и код перловки код исключает декларацию массива, потому и упало ...

Твоя проницательность тебя подводит. Я достаточно изучил твой язык что бы сообразить что для того кода нужно объявить 2 массива (E s:=1..6 и E m:= 1..6). Зачем правда именно 2 — от меня ускользает. В объявлении массивов ты преуспел, а вот с оперированием ими — засада с IndexOutOfRange....

PC_>А версия у тебя все еще Лайт, правда с унарными операторами уже

Походу ты гордишься тем, что выкдалываешь ущербные версии?
Re[12]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 16:36
Оценка:
Здравствуйте, PC_2, Вы писали:

__>>В том и дело, что мне не надо менять компилятор для создания операций \ / `, а вам надо.

__>>В реальном мире вы просто не сможете менять компилятор/транслятор каждый час и на каждый чих.
__>>Посмотрите сами как часто выходят версии C# и как быстро на них переходят.

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

Однако ведь макросы в С и С++ до сих пор используются. Не так ли ?
PC_>Потому в Шарпе от макросов даже след простыл. Про них просто решили забыть.
В одних нет , в других есть, но это не означает что макросы никому не нужны.
PC_>А вот Немерла решила о них вспомнить, а мы смотрим на это нагромождение шифтовых символов.
Так так, это была ваша идея использовать \ для FoldLeft и / для FoldRight, а не моя.

PC_>А потом вы сидите и удивляетесь, как это Немерла которой уже немало годков все еще не в мейнстриме.

Жду с нетерпением RS в мейнстриме.

PC_>>>И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса

__>>Да вот реализация:
__>>FoldLeft
__>>FoldLeft

PC_>Не хилая такая реализация то ....

У вас есть вариант проще ?
Ну покажите вашу реализацию. Не как используется в RS, а полную реализацию в вашем трансляторе.

__>>Давайте покажите как вы в файл писать будете в RS, и как читать, а потом как HTTP Server в ваш язык добавите чтобы меньше писать нужно было


PC_>Если честно набивка ядра языка стандартными функциями (ReadFile, WriteFile)

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

PC_>Синтаксис и ядро в языке — вот высший пилотаж, это черезвычайно сложная нетривиальная идеологическая задача


__>>Еще раз, писать алгоритм обычно нужно только один раз и после этого вы пользуетесь готовой наработкой, а не каждый раз когда вы пишете новую программу.


PC_>Ну зачем вы плетете свои библиотеки, ну кому это интересно.

PC_>Не смешите меня, вы что боксинг унбоксинг и реплейс по коду тестируете ?
Извините, вы пишите не в тему.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[34]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:38
Оценка: :)
Здравствуйте, samius, Вы писали:

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


PC_>>В смысле, как и код перловки код исключает декларацию массива, потому и упало ...

S>Твоя проницательность тебя подводит. Я достаточно изучил твой язык что бы сообразить что для того кода нужно объявить 2 массива (E s:=1..6 и E m:= 1..6). Зачем правда именно 2 — от меня ускользает. В объявлении массивов ты преуспел, а вот с оперированием ими — засада с IndexOutOfRange....

где там засада ?
Запускаю ...

E m:=10..1
E s:=1..10
E s.I := m.I.Len
E s.(I>4?I)<s.(J>4?J)?m.I:=:m.J
E m


работает ...

PC_>>А версия у тебя все еще Лайт, правда с унарными операторами уже

S>Походу ты гордишься тем, что выкдалываешь ущербные версии?

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

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

"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[35]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 16:41
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Да нет, просто ты тоже должен понимать что ты требуешь от пре альфы,

PC_>которая не реализует и половины истинно революционных задумок автора ...
Давайте вы допишете полную реализацию с документацией и тогда ее представите на рассмотрение.
А то действительно какой прок показывать нерабочую версию ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[13]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 23.12.10 16:41
Оценка:
__>Ну покажите вашу реализацию. Не как используется в RS, а полную реализацию в вашем трансляторе.

В смысле, ты про это чтоле ?

public Token Agregate(Token token)
        {
            Token result = this;

            if (token.TokenType == TokenType.Operator)
            {
                int value = 1;
                if (token.Text == "*")
                {
                    for (int i = 0; i < this.Result.Count; i++)
                    {
                        value *= this.Result[i].Result;
                    }
                }
                else if (token.Text == "+")
                {
                    for (int i = 0; i < this.Result.Count; i++)
                    {
                        value += this.Result[i].Result;
                    }
                }
                else if (token.Text == "<") //min
                {
                    if (this.Result.Count > 0)
                    {
                        value = this.Result[0].Result;

                        for (int i = 0; i < this.Result.Count; i++)
                        {
                            if (this.Result[i].Result < value)
                                value = this.Result[i].Result;
                        }
                    }
                }
                else if (token.Text == ">") //max
                {
                    value = 0;
                    for (int i = 0; i < this.Result.Count; i++)
                    {
                        if (this.Result[i].Result > value)
                            value = this.Result[i].Result;
                    }
                }

                result = new Number(this.Context);
                result.Result = value;
            }

            return result;
        }
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[14]: Ультракороткий язык программирования RS
От: _nn_ www.nemerleweb.com
Дата: 23.12.10 16:44
Оценка:
Здравствуйте, PC_2, Вы писали:

__>>Ну покажите вашу реализацию. Не как используется в RS, а полную реализацию в вашем трансляторе.


PC_>В смысле, ты про это чтоле ?


  Скрытый текст
PC_>
PC_>public Token Agregate(Token token)
PC_>        {
PC_>            Token result = this;

PC_>            if (token.TokenType == TokenType.Operator)
PC_>            {
PC_>                int value = 1;
PC_>                if (token.Text == "*")
PC_>                {
PC_>                    for (int i = 0; i < this.Result.Count; i++)
PC_>                    {
PC_>                        value *= this.Result[i].Result;
PC_>                    }
PC_>                }
PC_>                else if (token.Text == "+")
PC_>                {
PC_>                    for (int i = 0; i < this.Result.Count; i++)
PC_>                    {
PC_>                        value += this.Result[i].Result;
PC_>                    }
PC_>                }
PC_>                else if (token.Text == "<") //min
PC_>                {
PC_>                    if (this.Result.Count > 0)
PC_>                    {
PC_>                        value = this.Result[0].Result;

PC_>                        for (int i = 0; i < this.Result.Count; i++)
PC_>                        {
PC_>                            if (this.Result[i].Result < value)
PC_>                                value = this.Result[i].Result;
PC_>                        }
PC_>                    }
PC_>                }
PC_>                else if (token.Text == ">") //max
PC_>                {
PC_>                    value = 0;
PC_>                    for (int i = 0; i < this.Result.Count; i++)
PC_>                    {
PC_>                        if (this.Result[i].Result > value)
PC_>                            value = this.Result[i].Result;
PC_>                    }
PC_>                }

PC_>                result = new Number(this.Context);
PC_>                result.Result = value;
PC_>            }

PC_>            return result;
PC_>        }
PC_>


Я про \ и /, где тут FoldLeft и FoldRight ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[35]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 23.12.10 16:45
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>где там засада ?

PC_>Запускаю ...

PC_>
PC_>E m:=10..1
PC_>E s:=1..10
PC_>E s.I := m.I.Len
PC_>E s.(I>4?I)<s.(J>4?J)?m.I:=:m.J
PC_>E m
PC_>


PC_>работает ...

Врун здесь ты
Именно этот код выше в качестве результата выдает

Operators: 1:=10.Len
Operator: .
Error: 'Point' operation for the RS.DOM.Types.Number doesn't support.


PC_>>>А версия у тебя все еще Лайт, правда с унарными операторами уже

S>>Походу ты гордишься тем, что выкдалываешь ущербные версии?

PC_>Да нет, просто ты тоже должен понимать что ты требуешь от пре альфы,

PC_>которая не реализует и половины истинно революционных задумок автора ...
Я не требую. Я тебе не верю. И видимо не зря.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.