[Nemerle] Обсуждение
От: _nn_ www.nemerleweb.com
Дата: 28.12.06 22:33
Оценка: -1
Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).
Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.

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

30.01.07 18:00: Перенесено модератором из 'Декларативное программирование' — IT
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: [Nemerle] Обсуждение
От: PhantomIvan  
Дата: 28.12.06 23:53
Оценка:
__>Скорее всего ничего из этого не войдет в версию 1.0 языка, просто хотелось послушать ваше мнение.

мое мнение совпадает с ихним (компиляторщиков)

__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).


это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров...
зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?

и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?

__>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.


такое чувство, что ты пользовался интерпретаторами какими-то раньше
действительно, интересно, откуда возникло такое экзотическое желание?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: [Nemerle] Обсуждение
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.12.06 02:06
Оценка: +1
Здравствуйте, _nn_, Вы писали:

__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).

__>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.

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


По-моему, все это не нужно ни в 1.0, ни в 10.0. Зачем убирать скобки у if-ов я вообще не знаю. За то я знаю как сделать свой макрос который сможет реализовать if в стиле Руби или Васика. Но я не знаю зачем это делть.

Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.

ЗЫ

Вообще, главное что мне нравится в Немерле — это разумность его авторов. Они очень адекватны и понимают, что впихивать невпихуемое не стоит. Можно погубить хорошее начинаниие.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Nemerle] Обсуждение
От: ie Россия http://ziez.blogspot.com/
Дата: 29.12.06 05:58
Оценка: 6 (1) +1
Здравствуйте, _nn_, Вы писали:

__>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).


Это надо не Немерлистам писать, а в МС, чтоб поддержку аргументов по умолчанию добавляли.

__>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.


Категорически против!
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re: [Nemerle] Обсуждение
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 29.12.06 07:36
Оценка:
Кстати, если уж топик называется "[Nemerle] Обсуждение", то и я внесу свою лепту. ИМХО, язык сделан неплохо. Но вот в стандартной библиотеке заметил маленькую несуразность, а именно класс Set, который на деле принимает только сравнимые объекты (IComparable). Вообще, я в первую очередь от класса Set ожидал, что он работает на хэш-таблице, потому может принимать любой объект, а вот такой вот класс можно называть BTreeSet. Я, конечно, могу сделать свой HashSet, но всё-таки, ИМХО, более универсальная сущность требует более короткого названия, да и не могу я теперь нормально подключать PowerCollections.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Nemerle] Обсуждение
От: _nn_ www.nemerleweb.com
Дата: 29.12.06 08:09
Оценка:
Здравствуйте, VladD2, Вы писали:

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


__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).

__>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.

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


VD>По-моему, все это не нужно ни в 1.0, ни в 10.0. Зачем убирать скобки у if-ов я вообще не знаю. За то я знаю как сделать свой макрос который сможет реализовать if в стиле Руби или Васика. Но я не знаю зачем это делть.


VD>Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.


Знаю, что можно.
Но вот если бы этот макрос был бы в стандартной библиотеке языка

VD>ЗЫ


VD>Вообще, главное что мне нравится в Немерле — это разумность его авторов. Они очень адекватны и понимают, что впихивать невпихуемое не стоит. Можно погубить хорошее начинаниие.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: [Nemerle] Обсуждение
От: _nn_ www.nemerleweb.com
Дата: 29.12.06 08:15
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

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


PI>мое мнение совпадает с ихним (компиляторщиков)


__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).


PI>это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров...

PI>зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?

PI>и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?


У меня получилось только 5 перегрузок, как у вас 32 выходит не знаю.
Ну это как макрос можно добавить тоже.

__>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.


PI>такое чувство, что ты пользовался интерпретаторами какими-то раньше

PI>действительно, интересно, откуда возникло такое экзотическое желание?

Интерпретаторы не при чем.
Просто мне надоели лишние скобки где можно и без них
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: [Nemerle] Обсуждение
От: Mckey Россия  
Дата: 29.12.06 10:03
Оценка:
Здравствуйте, ie, Вы писали:

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


__>>Здесь есть преложение заменять аргументы по умолчанию перегрузкой, так обеспечивается поддержка всех языков (C# ).


ie>Это надо не Немерлистам писать, а в МС, чтоб поддержку аргументов по умолчанию добавляли.


__>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.


ie>Категорически против!


Абсолютно согласен...
Делай добро и бросай его в воду...
Re[2]: [Nemerle] Обсуждение
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.12.06 10:21
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Кстати, если уж топик называется "[Nemerle] Обсуждение", то и я внесу свою лепту. ИМХО, язык сделан неплохо. Но вот в стандартной библиотеке заметил маленькую несуразность, а именно класс Set, который на деле принимает только сравнимые объекты (IComparable).

Ну то есть надо бы его построить на IEquatable, так?
K> Вообще, я в первую очередь от класса Set ожидал, что он работает на хэш-таблице, потому может принимать любой объект, а вот такой вот класс можно называть BTreeSet. Я, конечно, могу сделать свой HashSet, но всё-таки, ИМХО, более универсальная сущность требует более короткого названия, да и не могу я теперь нормально подключать PowerCollections.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: [Nemerle] Обсуждение
От: Алексей П Россия  
Дата: 29.12.06 11:44
Оценка:
Ну и я добавлю свои пять копеек к недостаткам (имхо)..
Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка.
Вручную делается элементарно, но достало.
Re[2]: [Nemerle] Обсуждение
От: Mckey Россия  
Дата: 29.12.06 12:31
Оценка:
Здравствуйте, Алексей П, Вы писали:

АП>Ну и я добавлю свои пять копеек к недостаткам (имхо)..

АП>Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка.
АП>Вручную делается элементарно, но достало.

Напиши Extension метод
самое простое
Делай добро и бросай его в воду...
Re[3]: [Nemerle] Обсуждение
От: PhantomIvan  
Дата: 29.12.06 13:23
Оценка:
PI>>это ж шарп сам виноват, что не поддерживает нормальных дефолтных параметров, разноименных индексеров...
PI>>зачем же перенимать ошибки, если дотнет-ил-код позволяет делать это нормальным способом?

PI>>и прикинь, сколько перегрузок получится с 5 дефолтных параметров... 32 — не многова то ли для стандартной ситуации?


__>У меня получилось только 5 перегрузок, как у вас 32 выходит не знаю.

__>Ну это как макрос можно добавить тоже.

дык это, только 5 если дефолтными отправлять в метод при вызове только несколько с конца
тогда действительно 5
а если я хочу первый параметр дефолтный, а остальные указать?
вот как раз 32 и получается — на все комбинации параметров по принципу дефолт/указан

__>>>Здесь есть предложение убрать круглые скобки из if и всегда писать фигурные скобки.


PI>>такое чувство, что ты пользовался интерпретаторами какими-то раньше

PI>>действительно, интересно, откуда возникло такое экзотическое желание?

__>Интерпретаторы не при чем.

__>Просто мне надоели лишние скобки где можно и без них

дык это, парсер с ума сойдёт
то есть можно исхитрится, но убрать круглые скобки можно только ценой введения обязательных фигурных
(как минимум в первой ветке ифа)

это всё неплодотворная тема для обсуждений, немерле нуждается в других, более насущных усовершенствованиях
если интересно — почему б тебе не попробовать, поковываряться, вдруг получится
все будут рады помочь тебе...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: [Nemerle] Обсуждение
От: Алексей П Россия  
Дата: 29.12.06 13:25
Оценка:
Здравствуйте, Mckey, Вы писали:

M>Напиши Extension метод

M>самое простое

Это да, можно. Но просто применял я такое несколько раз в весьма разных местах, вполне может оказаться и общественно-полезным.

А, еще IndexOf('a) и IndexOf('a -> bool) — нужно реже, но всё-таки.
Re[4]: [Nemerle] Обсуждение
От: Алексей П Россия  
Дата: 29.12.06 13:26
Оценка:
Здравствуйте, PhantomIvan, Вы писали:

PI>это всё неплодотворная тема для обсуждений, немерле нуждается в других, более насущных усовершенствованиях


например? и не интеграция, а именно язык
Re[2]: [Nemerle] Обсуждение
От: PhantomIvan  
Дата: 29.12.06 13:27
Оценка:
АП>Ну и я добавлю свои пять копеек к недостаткам (имхо)..
АП>Очень хотелось бы иметь в стандартной библиотеке у класса list метод типа IterRest, ну и FoldRest — такие аналоги Iter и Fold, чтобы на каждой итерации передавался не только текущий элемент, но и оставшаяся часть списка.
АП>Вручную делается элементарно, но достало.

дык это — кидай сюда код, и оно попадёт в библиотеку
если конечно, компиляторщики не против
я думаю они не против
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: [Nemerle] Обсуждение
От: PhantomIvan  
Дата: 29.12.06 13:29
Оценка:
PI>>это всё неплодотворная тема для обсуждений, немерле нуждается в других, более насущных усовершенствованиях

АП>например? и не интеграция, а именно язык


как 2 пальца... в героической доработке напильником нуждается макросистема
юс-кейс "компилятор на боку, программист имеет его макросами" обладает свойством непроработанности
а к самому языку самое необходимое сейчас — сделать трейты (traits)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: [Nemerle] Обсуждение
От: Алексей П Россия  
Дата: 29.12.06 14:01
Оценка:
Здравствуйте, 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)
        | _ => ()
    }
}
Re[4]: [Nemerle] Обсуждение
От: PhantomIvan  
Дата: 29.12.06 17:11
Оценка:
АП>Или переписать через цикл, а то хвостовой рекурсии не будет.
в Nemerle хвостовая рекурсия автоматически преобразовывается компилятором в циклы!

кидай докупы сюда IndexOf
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: [Nemerle] Обсуждение
От: Алексей П Россия  
Дата: 29.12.06 17:56
Оценка:
Здравствуйте, 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
Re[3]: [Nemerle] Обсуждение
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.12.06 03:53
Оценка:
Здравствуйте, _nn_, Вы писали:

VD>>Проблем с дефолт-параметрами я тоже не вижу. И опять же если вдруг возникнет дикая необходимость генарацию методов можно сделать на макросах.


__>Знаю, что можно.

__>Но вот если бы этот макрос был бы в стандартной библиотеке языка

... то было бы действительно ужасно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.