Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ). Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.
30.01.07 18:00: Перенесено модератором из 'Декларативное программирование' — IT
__>Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.
мое мнение совпадает с ихним (компиляторщиков)
__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).
это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров...
зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?
и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?
__>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
такое чувство, что ты пользовался интерпретаторами какими-то раньше
действительно, интересно, откуда возникло такое экзотическое желание?
Здравствуйте, _nn_, Вы писали:
__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ). __>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
__>Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.
По-моему, все это не нужно ни в 1.0, ни в 10.0. Зачем убирать скобки у if-ов я вообще не знаю. За то я знаю как сделать свой макрос который сможет реализовать if в стиле Руби или Васика. Но я не знаю зачем это делть.
Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.
ЗЫ
Вообще, главное что мне нравится в Немерле — это разумность его авторов. Они очень адекватны и понимают, что впихивать невпихуемое не стоит. Можно погубить хорошее начинаниие.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, _nn_, Вы писали:
__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).
Это надо не Немерлистам писать, а в МС, чтоб поддержку аргументов по умолчанию добавляли.
__>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
Кстати, если уж топик называется "[Nemerle] Обсуждение", то и я внесу свою лепту. ИМХО, язык сделан неплохо. Но вот в стандартной библиотеке заметил маленькую несуразность, а именно класс Set, который на деле принимает только сравнимые объекты (IComparable). Вообще, я в первую очередь от класса Set ожидал, что он работает на хэш-таблице, потому может принимать любой объект, а вот такой вот класс можно называть BTreeSet. Я, конечно, могу сделать свой HashSet, но всё-таки, ИМХО, более универсальная сущность требует более короткого названия, да и не могу я теперь нормально подключать PowerCollections.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _nn_, Вы писали:
__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ). __>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
__>>Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.
VD>По-моему, все это не нужно ни в 1.0, ни в 10.0. Зачем убирать скобки у if-ов я вообще не знаю. За то я знаю как сделать свой макрос который сможет реализовать if в стиле Руби или Васика. Но я не знаю зачем это делть.
VD>Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.
Знаю, что можно.
Но вот если бы этот макрос был бы в стандартной библиотеке языка
VD>ЗЫ
VD>Вообще, главное что мне нравится в Немерле — это разумность его авторов. Они очень адекватны и понимают, что впихивать невпихуемое не стоит. Можно погубить хорошее начинаниие.
Здравствуйте, PhantomIvan, Вы писали:
__>>Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.
PI>мое мнение совпадает с ихним (компиляторщиков)
__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).
PI>это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров... PI>зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?
PI>и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?
У меня получилось только 5 перегрузок, как у вас 32 выходит не знаю.
Ну это как макрос можно добавить тоже.
__>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
PI>такое чувство, что ты пользовался интерпретаторами какими-то раньше PI>действительно, интересно, откуда возникло такое экзотическое желание?
Интерпретаторы не при чем.
Просто мне надоели лишние скобки где можно и без них
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, _nn_, Вы писали:
__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).
ie>Это надо не Немерлистам писать, а в МС, чтоб поддержку аргументов по умолчанию добавляли.
__>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
ie>Категорически против!
Здравствуйте, konsoletyper, Вы писали:
K>Кстати, если уж топик называется "[Nemerle] Обсуждение", то и я внесу свою лепту. ИМХО, язык сделан неплохо. Но вот в стандартной библиотеке заметил маленькую несуразность, а именно класс Set, который на деле принимает только сравнимые объекты (IComparable).
Ну то есть надо бы его построить на IEquatable, так? K> Вообще, я в первую очередь от класса Set ожидал, что он работает на хэш-таблице, потому может принимать любой объект, а вот такой вот класс можно называть BTreeSet. Я, конечно, могу сделать свой HashSet, но всё-таки, ИМХО, более универсальная сущность требует более короткого названия, да и не могу я теперь нормально подключать PowerCollections.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Ну и я добавлю свои пять копеек к недостаткам (имхо)..
Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка.
Вручную делается элементарно, но достало.
Здравствуйте, Алексей П, Вы писали:
АП>Ну и я добавлю свои пять копеек к недостаткам (имхо).. АП>Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка. АП>Вручную делается элементарно, но достало.
PI>>это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров... PI>>зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?
PI>>и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?
__>У меня получилось только 5 перегрузок, как у вас 32 выходит не знаю. __>Ну это как макрос можно добавить тоже.
дык это, только 5 если дефолтными отправлять в метод при вызове только несколько с конца
тогда действительно 5
а если я хочу первый параметр дефолтный, а остальные указать?
вот как раз 32 и получается — на все комбинации параметров по принципу дефолт/указан
__>>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.
PI>>такое чувство, что ты пользовался интерпретаторами какими-то раньше PI>>действительно, интересно, откуда возникло такое экзотическое желание?
__>Интерпретаторы не при чем. __>Просто мне надоели лишние скобки где можно и без них
дык это, парсер с ума сойдёт
то есть можно исхитрится, но убрать круглые скобки можно только ценой введения обязательных фигурных
(как минимум в первой ветке ифа)
это всё неплодотворная тема для обсуждений, немерле нуждается в других, более насущных усовершенствованиях
если интересно — почему б тебе не попробовать, поковываряться, вдруг получится
все будут рады помочь тебе...
АП>Ну и я добавлю свои пять копеек к недостаткам (имхо).. АП>Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка. АП>Вручную делается элементарно, но достало.
дык это — кидай сюда код, и оно попадёт в библиотеку
если конечно, компиляторщики не против
я думаю они не против
PI>>это всё неплодотворная тема для обсуждений, немерле нуждается в других, более насущных усовершенствованиях
АП>например? и не интеграция, а именно язык
как 2 пальца... в героической доработке напильником нуждается макросистема
юс-кейс "компилятор на боку, программист имеет его макросами" обладает свойством непроработанности
а к самому языку самое необходимое сейчас — сделать трейты (traits)
Здравствуйте, PhantomIvan, Вы писали:
PI>дык это — кидай сюда код, и оно попадёт в библиотеку PI>если конечно, компиляторщики не против PI>я думаю они не против
Да не вопрос. Правда это скорее для размещения в Nemerle.Collections.List, но можно просто вызвать из list.
Или переписать через цикл, а то хвостовой рекурсии не будет.
public FoldRest[T, P](lst: list[T], acc: P, f: T * list[T] * P -> P): P
{
match(lst)
{
| x :: xs => FoldRest(xs, f(x, xs, acc), f)
| _ => acc
}
}
public IterRest[T](lst: list[T], f: T * list[T] -> void): void
{
match(lst)
{
| x :: xs => f(x, xs); IterRest(xs, f)
| _ => ()
}
}
Здравствуйте, PhantomIvan, Вы писали:
АП>>Или переписать через цикл, а то хвостовой рекурсии не будет. PI>в Nemerle хвостовая рекурсия автоматически преобразовывается компилятором в циклы!
А то я не знаю! Это относилось к случаю, когда lst будет не параметром, а this.
PI>кидай докупы сюда IndexOf
public IndexOf[T](elem: T): int
{
mutable i = 0;
foreach(e in this)
{
when(e.Equals(elem))
return i;
++i;
}
-1
}
public IndexOf[T](f: T -> bool): int
{
mutable i = 0;
foreach(e in this)
{
when(f(e))
return i;
++i;
}
-1
}
Но с первым вариантом может быть фигня.. изначально там было where T: object и e == elem : object
Здравствуйте, _nn_, Вы писали:
VD>>Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.
__>Знаю, что можно. __>Но вот если бы этот макрос был бы в стандартной библиотеке языка
... то было бы действительно ужасно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.