Сахарок для match
От: WolfHound  
Дата: 06.02.08 09:11
Оценка:
Игрался я тут вот с этими задачками: http://projecteuler.net/index.php?section=problems
И пришол к выводу что иногда может быть удобно писать в стиле
ads
.Map(...)
.Filter(...)
.Fold(...)
.match
{
    ...
}
.Map(...)

Это тоже самое что
def tmp = ads
.Map(...)
.Filter(...)
.Fold(...)
;
match (tmp)
{
    ...
}
.Map(...)

Вот это самое tmp заводить и не хочется.
Кто что думает?
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Сахарок для match
От: Константин Л. Франция  
Дата: 06.02.08 09:25
Оценка:
Здравствуйте, WolfHound, Вы писали:

[]

Кхм... А почему не завести метод Match(type -> type) и писать в лямбде сам match? Нельзя?
Re: Сахарок для match
От: _pk_sly  
Дата: 06.02.08 09:34
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Игрался я тут вот с этими задачками: http://projecteuler.net/index.php?section=problems
WH>И пришол к выводу что иногда может быть удобно писать в стиле
WH>
WH>ads
WH>.Map(...)
WH>.Filter(...)
WH>.Fold(...)
WH>.match
WH>{
WH>    ...
WH>}
WH>.Map(...)
WH>


очень смахивает на Filter, в который запихнута лямбда с match'ем внутри.
Re[2]: Сахарок для match
От: WolfHound  
Дата: 06.02.08 09:56
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Кхм... А почему не завести метод Match(type -> type) и писать в лямбде сам match? Нельзя?

В принципе конечно можно но если в match'е написать что-то большое вывод типов почемуто начинает сильно глючить.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Сахарок для match
От: WolfHound  
Дата: 06.02.08 09:56
Оценка:
Здравствуйте, _pk_sly, Вы писали:

__>очень смахивает на Filter, в который запихнута лямбда с match'ем внутри.

На Filter точно не похоже.
Если уж на что и похоже то на Map.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Сахарок для match
От: _pk_sly  
Дата: 06.02.08 10:05
Оценка:
WH>На Filter точно не похоже.
WH>Если уж на что и похоже то на Map.

да, map
но без tmp по любому обходимся
Re[3]: Сахарок для match
От: Константин Л. Франция  
Дата: 06.02.08 13:57
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Константин Л., Вы писали:


КЛ>>Кхм... А почему не завести метод Match(type -> type) и писать в лямбде сам match? Нельзя?

WH>В принципе конечно можно но если в match'е написать что-то большое вывод типов почемуто начинает сильно глючить.

Забавно. Это только для лямбд?
Re[4]: Сахарок для match
От: WolfHound  
Дата: 06.02.08 14:11
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Забавно. Это только для лямбд?

Это когда ты выписываешь десяток Map, Filter и им подобных подряд.
Чтобы этого небыло приходится переодически типы уточнять.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: Сахарок для match
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 06.02.08 14:44
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

КЛ>>Забавно. Это только для лямбд?

WH>Это когда ты выписываешь десяток Map, Filter и им подобных подряд.
WH>Чтобы этого небыло приходится переодически типы уточнять.

А потом аннотации убираешь и оно работает, да?
Так это не компилятор виноват, а то, что у челоеека мозги не кремниевые.

А по сути — да, бывает такое, оказывается тип, которого не ожидаешь. В моем случае это обычно означает, что я не до конца представляю процесс. А иногда бывает и так:

def x = filenames.Filter(...)
                .Map(...)
                .Group(...) // здесь на выходе получается, стало быть list[list[string]]
                . // тут жму Ctrl+Space и безуспешно пытаюсь в списке найти Flatten. 
                // Как же так? У списка списков такой метод должен быть.

Оказывается, что неймспейс Nemerle.Collections забыл подключить, а грешу на вывод типов.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[6]: Сахарок для match
От: WolfHound  
Дата: 06.02.08 14:48
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>А потом аннотации убираешь и оно работает, да?

Нет.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: Сахарок для match
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.08 08:55
Оценка:
Здравствуйте, WolfHound, Вы писали:

СТ>>А потом аннотации убираешь и оно работает, да?

WH>Нет.

Пример можно? Может это баг, все же?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Сахарок для match
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.08 15:53
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>
WH>Это тоже самое что
WH>[c#]
WH>def tmp = ads
WH>.Map(...)
WH>.Filter(...)
WH>.Fold(...)
WH>;
WH>match (tmp)
WH>{
WH>    ...
WH>}
WH>.Map(...)
WH>

WH>Вот это самое tmp заводить и не хочется.

Дык можно и без него:
def tmp = 
    match (ads.Map(...).Filter(...).Fold(...))
    {
            ...
    }.Map(...);
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Сахарок для match
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.08 15:53
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>В принципе конечно можно но если в match'е написать что-то большое вывод типов почемуто начинает сильно глючить.


Это отдельный вопрос. Приводи примеры, будет разбираться. Может просто баги.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Сахарок для match
От: WolfHound  
Дата: 07.02.08 16:39
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Дык можно и без него:

VD>
VD>def tmp = 
VD>    match (ads.Map(...).Filter(...).Fold(...))
VD>    {
VD>            ...
VD>    }.Map(...);
VD>

Нельзя. Ибо за строку в несколько сот символов нужно отлучать от программирования.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Сахарок для match
От: WolfHound  
Дата: 07.02.08 16:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Пример можно? Может это баг, все же?

Может позже.
В любом случае match через точку банально удобно.
Мотвация примерно такая же как у extension methods.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Сахарок для match
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.08 18:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Нельзя. Ибо за строку в несколько сот символов нужно отлучать от программирования.


Это уже другой вопрос. Вопрос декомпозиции. Он принципиальной возможности обрабатывать возрващаемое значение match не отменяет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Сахарок для match
От: WolfHound  
Дата: 07.02.08 18:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это уже другой вопрос. Вопрос декомпозиции.

Да я вобщем про ее и говорю.
Очень удобно когда можно взять некоторые данные и просто выписать последовательность трансформаций.

VD>Он принципиальной возможности обрабатывать возрващаемое значение match не отменяет.

А я спорил?
А же говорю про сахарок.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: Сахарок для match
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.02.08 14:14
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Это уже другой вопрос. Вопрос декомпозиции.

WH>Да я вобщем про ее и говорю.
WH>Очень удобно когда можно взять некоторые данные и просто выписать последовательность трансформаций.

Ну, так, а что мешает? Переменные есть. Можешь их вводить, а можешь все в строчку записать.

VD>>Он принципиальной возможности обрабатывать возрващаемое значение match не отменяет.

WH>А я спорил?
WH>А же говорю про сахарок.

Тольо о том, чтобы к нему точку применять? Это ты можешь и сам сделать. match ключевое слово. Так что распознать конструкцию ".match" труда составить не должно.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Сахарок для match
От: WolfHound  
Дата: 08.02.08 14:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, так, а что мешает? Переменные есть. Можешь их вводить, а можешь все в строчку записать.

Так и приходится и это мне и не нравится.

VD>Тольо о том, чтобы к нему точку применять? Это ты можешь и сам сделать. match ключевое слово. Так что распознать конструкцию ".match" труда составить не должно.

Вопрос не в том могу я или нет (кстати где разрешение на коммит брать?), а в том нужно это или нет?
Те вопрос не технический, а политический.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: Сахарок для match
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 08.02.08 14:58
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Вопрос не в том могу я или нет (кстати где разрешение на коммит брать?), а в том нужно это или нет?

WH>Те вопрос не технический, а политический.

Я думаю, что фича относительно легка для понимания (не вызывает неоднозначностей). Только надо проследить, чтобы она дружила с отладкой.
... << RSDN@Home 1.2.0 alpha rev. 789>>
--
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.