@dlangru

Страница 95 из 719
Oleg
29.10.2016
16:00:39
assert(42.among!((lhs, rhs) => lhs > rhs)(43, 24, 100) == 2);

Sergey
29.10.2016
16:02:42
про макросы не понял)

Oleg
29.10.2016
16:05:23
Ну в терминах D миксины, в примере это знак !

Sergey
29.10.2016
16:07:19
теперь понял, о чем речь. (подавил свое занудство, придирающееся к моменту про знак !)

Google
Oleg
29.10.2016
16:08:18
Я наконец понял почему именно такой синтаксис, а не <Т>

Sergey
29.10.2016
16:08:40
но все-таки, имея std, не могу представить элегантный способ повторить приведенный выше пример паттерн матчинга

Sergey
29.10.2016
16:09:07
ну, да. тут речь не столько о шаблонах, сколько о переменных времени компиляции

две параллельные нити обсуждения превратили все в кашу

Oleg
29.10.2016
16:11:16
Тут фишка в том, что дело не в паттерне или вызове indexOf, а имено в > вместо == сравнения

switch не сможет такое отработать

Sergey
29.10.2016
16:12:19
но predSwitch может

а вот сравнить массив с паттерном - это уже сложнее

Oleg
29.10.2016
16:13:51
Мне кажется, что это просто другая задача. То что делает тут D может вприцнипе любой язык. А паттерны решают еще нелинейность и иногда полноту

Т.е. Была бы бизнес логика сложнее, было бы несколько case

Некоторые языки позволяют case if, хотя это в D тоже можно

Google
Oleg
29.10.2016
16:16:43
про case if в D не слышал
Судя по примерам в std, такой миксин нефиг делать

Sergey
29.10.2016
16:17:33
ну, это как раз от же predSwitch, о котором я говорил ранее

Oleg
29.10.2016
16:18:01
Смешно будет когда ты попробуешь доказать полноту свитча через миксин :)

Sergey
29.10.2016
16:18:08
там не обязательно должен быть mixin, может быть и функция

лямбда

Oleg
29.10.2016
16:18:36
там не обязательно должен быть mixin, может быть и функция
Функции реального времени не доказать при компиляции

Функции реального времени не доказать при компиляции
Это уже дядюшка Тьюринг и императивность

Sergey
29.10.2016
16:20:36
predSwitch!(x=>{ any code })(

Oleg
29.10.2016
16:20:48


Смогу я в D слелать вот так и заодно знать что я не верблюд?

При условии что любой паттерн здесь может иметь бесчисленное множество паттернов внутри

Sergey
29.10.2016
16:21:46
да

Oleg
29.10.2016
16:22:07
да
Примерчик кода?

Sergey
29.10.2016
16:22:32
но не при условии, что любой паттерн может иметь бесчисленное множество паттернов внутри

Oleg
29.10.2016
16:23:07
Добавить к этому что case может иметь несколько валидных паттернов и if проверки (но они не сильно валидиуются в хаксе)

На D думаю нехилая портянка выйдет и еще и тестами покрывать

Google
Oleg
29.10.2016
16:26:06
case еще и деструктуринг делает

Sergey
29.10.2016
16:27:05
что-то типа того auto value = myStruct.predSwitch!(ms=> { if (ms.name == "haxe" && ms.rating == "poor") return false; ... })();

если паттерны сложнее, то, естественно, уже встанет вопрос о целесообразности такого подхода

Oleg
29.10.2016
16:28:57
Нет

Встает вопрос чем занят Александреску

Sergey
29.10.2016
16:29:17
известно чем

Oleg
29.10.2016
16:29:20
Эта фича не такая зубодробительная

Могли бы добавить

Oleg
29.10.2016
16:29:46
Встает вопрос чем занят Александреску
Вспомнилась презентация про сложность алгоритмов

Чтобы в сигнатуру это вписывать

Например, чтобы интерфейс мог гарантировать что метод будет работать за o(n)

Но имхо это лишнее

Oleg
29.10.2016
16:31:48
Это будет компилироваться два часа или три?

Sergey
29.10.2016
16:32:04
хм... конктрактное программирование в рамках D же это может

Oleg
29.10.2016
16:32:24
Контактное программирование это rt

Oleg
29.10.2016
16:33:05
Смысл О(n)? это же не так работает. Кеши процессора и все дела

Sergey
29.10.2016
16:33:10
ну, это будет наршуением определенных соглашени, но оно может позолить удостовериться

Oleg
29.10.2016
16:33:47
Контактное программирование это rt
Иначе требует SMT солвер и бесконечность времени, чаще всего неразрешимо

Google
Oleg
29.10.2016
16:33:54
Смысл О(n)? это же не так работает. Кеши процессора и все дела
Учитывая все кэши и параллельности сложность всё равно сводится к этой записи

Oleg
29.10.2016
16:34:40
Как множитель при o

Oleg
29.10.2016
16:34:55
Если язык такой тормозной что гробит кеш и все хранит в куче то конечно на кеш можно забить

Особенно на L1

Oleg
29.10.2016
16:35:27
Лучше бы компилятор библиотекой сделали

Oleg
29.10.2016
16:38:13
известно чем
Чеееееем? :]

Sergey
29.10.2016
16:38:25
no gc

Oleg
29.10.2016
16:38:33
А Волтер кстати че там?

Sergey
29.10.2016
16:39:11
и еще, если Александреску не будет пиарить D, то кто. Он вынужден ездить по конференциям)

Admin
ERROR: S client not available

Sergey
29.10.2016
16:41:19
он же лютый интроверт. Он не любит конференций

по-моему, он всегда занят компилятором

Oleg
29.10.2016
16:42:48
Ты опечатался?

Я уж полумал Волтер пол поменял

Sergey
29.10.2016
16:44:12
не по глазам

а. увидел

Oleg
29.10.2016
16:46:13
Может в DIP кто паттерны или алгебраики предлагал, я бы обсуждение посмотрел

Google
Dmitry
29.10.2016
16:50:38
Паттерны да впечатлили....

Я бы блин рубем за эту фичу проголосовал в меру возможностей

Oleg
29.10.2016
16:51:59
Dmitry
29.10.2016
16:52:16
им людей не хватает пока очень сильно

В свое время форк D под названием Amber так и не дошел до релиза

Dmitry
29.10.2016
16:54:01
Там не все гуглится...

Oleg
29.10.2016
16:55:11
Я код нашел. Не все это что?

Dmitry
29.10.2016
16:56:01
Ну мы с ними так общались по почте и в привате

типа о состоянии дел

Oleg
29.10.2016
17:00:51
Я свой язык когда-нибудь тоже доделаю :)

Рад что народ не забивает и экспериментирует даже в 2016м

Sergey
29.10.2016
17:01:49
каждый из нас обязательно когда-нибудь доделает своей проект мечты. А начнет доделывать послезавтра

Oleg
29.10.2016
17:04:42
Меня это научило не выпендриваться и спокойно неторопливо двигаться к завершению

Ракеты взрываются, автопилоты сталкиваются, телефоны горят, а под линукс так и нету драйверов.. Так что торопиться и не нужно

Sergey
29.10.2016
17:06:11
))

Oleg
29.10.2016
17:06:23
Если Volt не перегорят то будет еще один проект в копилку человечества

Sergey
29.10.2016
17:07:34
честно сказать, слабо верю в хоть какой-то успех Volt

элементарно не понятно, зачем он (кроме опыта разработчиков). Дисклеймер: зачем D, у меня для себя лично ответ есть

Oleg
29.10.2016
17:09:10
Видимо в D есть что то что их сильно не устраивает

Sergey
29.10.2016
17:10:19
Но вероятность того, что то самое нечто, что их не устраивает, будет устранено еще до релиза Volt слишком высока

даже, если оно не будет устранено никогда

Oleg
29.10.2016
17:10:56
Я лично веду два проекта: язык типа хакса и форк reactos, в обоих случаях забодало руководство, и то что ничего не работает

Страница 95 из 719