
Андрей
01.03.2017
17:10:03

? Райзя ?
01.03.2017
17:10:08

Igor
01.03.2017
17:10:38
А если еще и книжку по Haskell осилишь - так мозги вправятся ? и почувствуешь гордость за профессию разработчика.

Google

Alexander
01.03.2017
17:12:34

Nikita
01.03.2017
17:15:35
монады у меня и так есть
мне Result и MayBe хватает
остальное от лукавого
иначе получается код как на перле

Igor
01.03.2017
17:20:50

Axm
01.03.2017
17:22:39

Insha Allax
01.03.2017
17:41:54
/topuser@bestuserbot

Nikita
01.03.2017
17:49:23
@igor_ur
В общем виде -
class Result<T>
{
public Exception Exception {get;}
public T Result {get;}
}
соответственно если методы возвращают Result
то их можно объединять в цепочки

Igor
01.03.2017
17:50:13

Nikita
01.03.2017
17:51:24
не совсем

Google

Nikita
01.03.2017
17:51:33
Either предполагает равноправные значения
а тут одно считается успешным, а другое нет
и можно чейнить
Result<int> Foo() => 123
string Bar1(int x) => x.ToString();
var res = Foo().Map(Bar1);
причём у меня обычно там не Exception, a string Error
т. к. исключение и ошибка - это вообще говоря две большие разницы
почитал
в общем, это Try в хаскеле
не суть важно
там, кстати, ещё не придумали как сделать _ универсальной заглушкой?
а то напрягает городить лямбды вида (_, __)
какой-то смайлик свинной задницы получается


Igor
01.03.2017
18:00:09
Either предполагает равноправные значения
Как бы нет, Left используется для ошибки, Right для значения. Он вообще считается как Maybe с доп. информацией.
Вот стандартная реализация функтора Either:
instance Functor (Either e) where
fmap _ (Left a) = Left a
fmap f (Right a) = Right (f a)
В случае Left он игнорирует переданную функцию.
В монаде там тоже самое:
instance Monad (Either e) where
return = Right
Right m >>= k = k m
Left e >>= _ = Left e

yegorf1
01.03.2017
18:05:36
Чувки, а когда имеет смысл юзать указатели в шарпе?
Они чуть быстрее с нестандартными обращениями к массивам и.. и все?

Ramil
01.03.2017
18:06:48

Nikita
01.03.2017
18:08:08

Дмитрий
01.03.2017
18:09:29
тогда указатели дают некислый прирост в производительности

Nikita
01.03.2017
18:09:56
можно через обычный байтмассив

Google

Дмитрий
01.03.2017
18:10:03
но и шансы самострела в ногу повышают

Nikita
01.03.2017
18:10:04
в релизной сборке неплохо вполне
хотя JIT может не догадаться убрать проверки границ

Дмитрий
01.03.2017
18:12:01
в одном из проектов на старой работе вообще рисовашки на server-side были через WriteableBitmapEx реализованы
да, это трэш и угар, я знаю

Nikita
01.03.2017
18:14:23
>WriteableBitmapEx
боль
это идиотизм
причём идиотизмом является само существование этой либы
она не даёт особого прироста по сравнению с GDI+

Дмитрий
01.03.2017
18:15:53
к сожалению, это чудо инженерной мысли было разработано ещё до моего прихода
при этом вполне успешно крутилось и работало

Nikita
01.03.2017
18:15:56
просто автор не догадался расшарить кусок памяти между WritableBitmap и System.Drawing.Bitmap

Nikita
01.03.2017
18:16:29
и слепил на этом чуде свой "быстрый грид"
Кстати обэтомсамом и свиньях. Когда в финке был, рассказали кулстори про зоофила, который залез в свинарник
так вот, его не смогли привлечь к ответственности
т. к. по стечению обстоятельств

yegorf1
01.03.2017
18:26:58
он был свиньей?

Nikita
01.03.2017
18:27:01
он понравился местному хряку

yegorf1
01.03.2017
18:27:01
/простите/

Nikita
01.03.2017
18:27:20
и оказался не на той стороне стороне за которую потом привлекают

Google

yegorf1
01.03.2017
18:27:39
ахахаха

Сергей
01.03.2017
19:12:05
какой-то смайлик свинной задницы получается
Все норм, дискарды уже в мастере https://tryroslyn.azurewebsites.net/#b:master/K4Zwlgdg5gBAygTxAFwKYFsDcAoADsAIwBswBjGUogQxBBgGEYBvbGNmfYsmANwHswAExgBZABQBKZq3ayZstjyoAnGGKoAaGASkBeNQH0NBvWoCMWgEwScC9ktVijJmPrEWY123ZjyYAX2x/IA=

Nikita
01.03.2017
19:18:55
Func<int, int, int> foo=(_,_)=>123;
The parameter name '_' is a duplicate
не работает

? Райзя ?
01.03.2017
19:20:39
(_,☺️) попробуй

Admin
ERROR: S client not available

? Райзя ?
01.03.2017
19:21:05
(_,❤️) или так

Nikita
01.03.2017
19:21:55
ещё в параметрах лямбд можно писать стихи на японском

? Райзя ?
01.03.2017
19:22:27
а у нас в свифте нормально все с опусканием параметров через _!
вот

Nikita
01.03.2017
19:23:00
у вас в свифте нормальный UI-фреймворк не завезли

? Райзя ?
01.03.2017
19:23:25
чиво это

Сергей
01.03.2017
19:23:36
Дискарды это фича деконстрактов, а в лямбдах _ - валидное имя аргумента

? Райзя ?
01.03.2017
19:23:43
вот кодом все пишешь пишешь быстро быстро быстро

Nikita
01.03.2017
19:24:11
ну вот UIKit застрял где-то на уровне Windows Forms

? Райзя ?
01.03.2017
19:24:49
ну да, никаких хитростей с биндингами как в впф
иногда мне это нравится больше, ибо все прозрачно

Nikita
01.03.2017
19:25:18
банальные вещи типа "расположить картинку на кнопке слева от текста"
делаются монстриками типа этого http://stackoverflow.com/a/41575018/2231814

Google

? Райзя ?
01.03.2017
19:26:18
а это какие-то маньяки с времен фреймворков для графики через код

Nikita
01.03.2017
19:26:41
ещё хуже

? Райзя ?
01.03.2017
19:27:00
зато быстро

Nikita
01.03.2017
19:29:15
чик-чик и в продакшн, да

Igor
01.03.2017
19:30:18
зато быстро
А DSL для построения UI у вас нет, как Anko в Android?

Nikita
01.03.2017
19:33:55
Кстати о DSL
http://www.ammyui.com/
только у него какие-то тарифы странные

? Райзя ?
01.03.2017
19:43:15

Sh2dow
01.03.2017
20:35:35
Подскажите плес онлайн магазин с открытым api (чтоб парсер не писать)

Nikita
01.03.2017
20:39:56
амазон

Igor
01.03.2017
21:10:13
а я ненаю что это
Пример валдиного DSL на Kotlin с for и функциями: https://i.gyazo.com/d43fc1138996ded3912d555767b4f643.png
Конкретно для Android уже есть готовая либа ANKO от JB c полным DSL на Anroid UI.
Domain-specific language https://goo.gl/STrq7F
Это способ подняться на императивны программирования и писать программы декларативным образом.
Ты начинаешь описывать не решение проблемы по шагам, а саму проблему на языке пред. области.
К примеру есть проблема: надо описать UI.
Обчно из за ограничение C#/Java - для этого начинают юзать XML (XAML).
Но это очень ограниченное решение и требует специального тулинга/кодогенерации.
Но есть такие языки (Kotlin/Groovy/F#) в которых DSL можно делать внутри самого языка.
При этом у тебя огромная гибкость: можно использовать for/if/switch, выделять куски UI в функции,
юзать любые рефакторинги и манипулировать UI как кодом.

? Райзя ?
01.03.2017
21:10:29
я понел
пасибо


anton
01.03.2017
21:11:01
http://no-kill-switch.ghost.io/current-state-of-net-through-not-so-rose-colored-glasses/
Эта группа больше не существует