Здравствуйте, Antikrot, Вы писали:
A>Здравствуйте, Mamut, Вы писали:
M>>Что мешает выложить твою версию на гуглокод? A>а то ты не знаешь
Да ладно, Мамут недавно сокрушался и раздавал негативные оценки что другие качали сорцы.
Но раз Мамут уж будет давнлоадить, то я выкладываю версию которая уже поддерживает унарные операторы
Да собственно ее уже зааплоадил
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>боюсь чтото о Немерле писать, PC_>последнее высказывание мне стоило перевода темы из Философия программирования, PC_>сюда
И правильно, что перенесли.
А Nemerle тут не при чем.
Ваш ультракороткий язык просто не позволяет создавать произвольной сложности лямбду, вот вы и переживаете.
Конечно вы скажете, что это нафиг никому не нужная фича, но фактически не нужная она прежде всего вам.
Давайте, вы начнете более реальные программы писать на RS, а не одни алгоритмы от которых толку в жизни мало.
__>Ваш ультракороткий язык просто не позволяет создавать произвольной сложности лямбду, вот вы и переживаете.
я не знаю что там на счет лямбд, но Мамут мне уже все уши прожужжал что мол,
"как это ?! чтобы ФолдРайт сделать нужно дописать транслятор ???! Катастрофа, точно HQ9+"
И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса
Так может товарищи прежде чем метать камни в мой огород в своем разберитесь как следует,
что там можно сделать лямбдами, фолдами и прочьей фигней, а где вы просто тягаете готовые грушки (функции) из ядра языка.
Это кстате и к Перловке относится
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
__>>Ваш ультракороткий язык просто не позволяет создавать произвольной сложности лямбду, вот вы и переживаете.
PC_>я не знаю что там на счет лямбд, но Мамут мне уже все уши прожужжал что мол, PC_>"как это ?! чтобы ФолдРайт сделать нужно дописать транслятор ???! Катастрофа, точно HQ9+"
В том и дело, что мне не надо менять компилятор для создания операций \ / `, а вам надо.
В реальном мире вы просто не сможете менять компилятор/транслятор каждый час и на каждый чих.
Посмотрите сами как часто выходят версии C# и как быстро на них переходят.
PC_>И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса
Да вот реализация: FoldLeft FoldLeft
Или это надо в синтаксис языка тащить ?
Можно это втащить в синтаксис, и тогда будет работать из коробки. Какие тогда аргументы будут ??
Давайте покажите как вы в файл писать будете в RS, и как читать, а потом как HTTP Server в ваш язык добавите чтобы меньше писать нужно было
PC_>Так может товарищи прежде чем метать камни в мой огород в своем разберитесь как следует, PC_>что там можно сделать лямбдами, фолдами и прочьей фигней, а где вы просто тягаете готовые грушки (функции) из ядра языка. PC_>Это кстате и к Перловке относится
Учитывая что большая часть конструкций в Nemerle это макросы, то само ядро там очень малое.
Как раз и ценность в библиотеках, вот для Python есть куча библиотек и это удобно, не надо писать самому 100-й раз простой HTTP Server.
Еще раз, писать алгоритм обычно нужно только один раз и после этого вы пользуетесь готовой наработкой, а не каждый раз когда вы пишете новую программу.
__>В том и дело, что мне не надо менять компилятор для создания операций \ / `, а вам надо. __>В реальном мире вы просто не сможете менять компилятор/транслятор каждый час и на каждый чих. __>Посмотрите сами как часто выходят версии C# и как быстро на них переходят.
Слушайте, макросы разработчики похоронили в Сишном коде, они делали его плохо читаемым.
Потому в Шарпе от макросов даже след простыл. Про них просто решили забыть.
А вот Немерла решила о них вспомнить, а мы смотрим на это нагромождение шифтовых символов.
А потом вы сидите и удивляетесь, как это Немерла которой уже немало годков все еще не в мейнстриме.
PC_>>И что я вижу, еще один исходник на немерлах и ФолдРайт живет там на правах синтаксиса __>Да вот реализация: __>FoldLeft __>FoldLeft
Не хилая такая реализация то ....
__>Давайте покажите как вы в файл писать будете в RS, и как читать, а потом как HTTP Server в ваш язык добавите чтобы меньше писать нужно было
Если честно набивка ядра языка стандартными функциями (ReadFile, WriteFile)
черезвычайно тривиальна и не интересна.
Синтаксис и ядро в языке — вот высший пилотаж, это черезвычайно сложная нетривиальная идеологическая задача
__>Еще раз, писать алгоритм обычно нужно только один раз и после этого вы пользуетесь готовой наработкой, а не каждый раз когда вы пишете новую программу.
Ну зачем вы плетете свои библиотеки, ну кому это интересно.
Не смешите меня, вы что боксинг унбоксинг и реплейс по коду тестируете ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
/*
* Copyright (c) 2003-2008 The University of Wroclaw.
* All rights reserved.
....
Что мол это библиотеки, мол кастом, а ядро там вообще гулькин нос.
Поляки за вас написали расширение языка и оно живет в том исходнике и импортит кучу неймспейсов.
Ато ядро языка понимаете ли.
Ато я ведь тоже могу ядром назвать
вотето
Здравствуйте, PC_2, Вы писали:
PC_>В смысле, как и код перловки код исключает декларацию массива, потому и упало ...
Твоя проницательность тебя подводит. Я достаточно изучил твой язык что бы сообразить что для того кода нужно объявить 2 массива (E s:=1..6 и E m:= 1..6). Зачем правда именно 2 — от меня ускользает. В объявлении массивов ты преуспел, а вот с оперированием ими — засада с IndexOutOfRange....
PC_>А версия у тебя все еще Лайт, правда с унарными операторами уже
Походу ты гордишься тем, что выкдалываешь ущербные версии?
Здравствуйте, 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_>Не смешите меня, вы что боксинг унбоксинг и реплейс по коду тестируете ?
Извините, вы пишите не в тему.
Здравствуйте, 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 человек играть не умеем"(с)КВН
Здравствуйте, PC_2, Вы писали:
PC_>Да нет, просто ты тоже должен понимать что ты требуешь от пре альфы, PC_>которая не реализует и половины истинно революционных задумок автора ...
Давайте вы допишете полную реализацию с документацией и тогда ее представите на рассмотрение.
А то действительно какой прок показывать нерабочую версию ?
__>Ну покажите вашу реализацию. Не как используется в 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 человек играть не умеем"(с)КВН
Здравствуйте, 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_>
PC_>работает ...
Врун здесь ты
Именно этот код выше в качестве результата выдает
Operators: 1:=10.Len
Operator: .
Error: 'Point' operation for the RS.DOM.Types.Number doesn't support.
PC_>>>А версия у тебя все еще Лайт, правда с унарными операторами уже S>>Походу ты гордишься тем, что выкдалываешь ущербные версии?
PC_>Да нет, просто ты тоже должен понимать что ты требуешь от пре альфы, PC_>которая не реализует и половины истинно революционных задумок автора ...
Я не требую. Я тебе не верю. И видимо не зря.