@Fsharp_chat

Страница 169 из 772
Evgeniy
26.05.2017
19:58:49
@Dolfik И конструктор, и геттеры будут internal.

Там какая-то мутная история с этими модификаторами для записей.

@Dolfik Возможно, адекватное решение твоей задачи, это internal запись с дополнительными объявленными вручную геттерами.

Roman
26.05.2017
20:22:14
https://youtu.be/wRxO5ky7S8g?t=37m10s Это шикарно. @VagifAbilov спел песнб про тяжелую жизнь созданного актора, эх, жестокая стратегия исправления ошибок работает без эмоций и привязанности.

Google
Roman
26.05.2017
20:33:21
а что за библиотека для анализа данных на F# которую вы/ты пишешь?
Да стандартная ML библиотека вроде scikit learn. Ближайший аналог в дотнете - это Accord, но к нему у меня некоторое количество претензий. Правда, я дико погряз в делах и на определенной стадии отложил это дело.

Roman
26.05.2017
20:34:45
Нет, пока это слишком слабо, чтобы опенсорсить

Pawel
27.05.2017
05:26:28
Evgeniy
27.05.2017
06:25:42
@EvgenyTornado2016 Привет!

Nikolay
27.05.2017
08:05:55


Баг или фитча?)

Igor
27.05.2017
08:06:48
Похоже ты не правильно сравниваешь с null, надо isNull вроде

Nikolay
27.05.2017
08:08:20


А так?

С isNull то же самое

Тут косяк из-за let value

Если делаю let serializeValue = ... всё ок

Google
Igor
27.05.2017
08:11:31
А так?
А там разве не присваивание? А вроде понял, тут типа перекрытие внутри if

Nikolay
27.05.2017
08:12:04
Вот и спрашиваю, это баг или фитча)

При этом такой код нормально отображает значение: let x = "123" let x = if isNull(x) then printf "x is null" else printf "x is not null: %O" x

Evgeniy
27.05.2017
08:15:12
@Dolfik Посмотри, во что это компилируется.

Evgeniy
27.05.2017
08:16:17
Нет. Первоначальный код.

Может с рефлексией какие-то проблемы.

@Dolfik Если ты делаешь имена не перекрывающимися, то все нормально работает?

Nikolay
27.05.2017
08:21:20
Да

Ну т.е. код всегда одинаково отрабатывает

А вот в VS показывает что там якобы null

https://gist.github.com/Dolfik1/2676e77f399b670facb291ed631f64a6

Такое получается

Evgeniy
27.05.2017
08:23:24
Все нормально. Видимо, проблема только с QuickWatch.

Nikolay
27.05.2017
08:23:39
Ну при наведении тоже null

Evgeniy
27.05.2017
08:23:54
Я понял. Но ничего не падает?

Nikolay
27.05.2017
08:24:18
Неа

Evgeniy
27.05.2017
08:24:21
Ты бы проблему словами описывал сначала. :) Я уж подумал, что компилятор что-то неправильно генерирует, и у тебя все падает.

Nikolay
27.05.2017
08:24:36
Я щас проверил, что с value, что с serializeValue получается одинаковый код

Evgeniy
27.05.2017
08:24:49
Ищи минимальный пример, заводи ишшью.

Google
Nikolay
27.05.2017
08:25:02
Ты бы проблему словами описывал сначала. :) Я уж подумал, что компилятор что-то неправильно генерирует, и у тебя все падает.
Ну извиняйте) Я думал по скрину понятно, что код if прошёл, а Quick Watch показывает другое значение

Evgeniy
27.05.2017
08:25:11
Неа, нифига не понятно.

@Dolfik У меня в Locals отображаются два значения value.

Один null, один нормальный.

При наведении — null.

Nikolay
27.05.2017
08:28:35
Я просто тыкнул пкм по значению и нажал Quick Watch :)

Evgeniy
27.05.2017
08:29:13
@Dolfik Заведешь ишшью?

Nikolay
27.05.2017
08:29:26
Я пытаюсь минимальный пример сделать)

Забавно: Ок: let testNull x = let x = if isNull(x) then printf "value is null" else printf "value is not null" () Не ок: let testNull x = let x = if isNull(x) then null else null ()

Evgeniy
27.05.2017
08:39:18
Первый тоже не ок.

Nikolay
27.05.2017
08:40:09
А у меня нормально показывает

Evgeniy
27.05.2017
08:40:18
А ты посмотри в let x.

Nikolay
27.05.2017
08:40:41
Да, косяк)

Можно тогда два примера сразу сделать?

Evgeniy
27.05.2017
08:42:00
Да.

Nikolay
27.05.2017
08:43:42
А у тебя Visual F# Tools Nightly?

Evgeniy
27.05.2017
08:45:22
Угу.

Nikolay
27.05.2017
08:47:23
Вечером попробую завести issue

Roman
27.05.2017
09:29:36
А почему баг? Попробуйте x внутри функции простым типом инициализировать. Интом каким-нибудь

Evgeniy
27.05.2017
09:32:07
Roman Проблема в том, что отладчик почему-то плохо различает перекрывающиеся имена в разных скоупах.

Google
Roman
27.05.2017
09:39:35
Это я понимаю. Вопрос в том какое поведение должно считаться корректным.

В какой момент времени правильным сиановится второй x

Попробуй с интом. Если будет 0, тогда это фича. Если null - баг

Evgeniy
27.05.2017
09:43:09
Roman Да, там ноль.

Roman
27.05.2017
09:43:47
Тады это вторая x, которая ещё не инициализирована.

Evgeniy
27.05.2017
09:43:56
Да.

И мне хотелось бы, находясь внутри if-then-else кейсов, видеть то значением value, по которому разветвление идет.

Roman
27.05.2017
09:44:54
Тогда используй другое имя

Admin
ERROR: S client not available

Evgeniy
27.05.2017
09:45:18
Это неспортивно. :)

Было бы круто, если отладчик помог в такой странной ситуации понять, что происходит.

Мало ли, где такой код встетится.

При том, что в Locals я вижу две версии value.

Nikolay
27.05.2017
09:51:01
Это просто ожидаемое поведение, если ты смотришь значение переменной a, то в ней должно отображаться значение, которое в этой переменной находится, а не в какой-то другой

Интересно кстати, в что вскод покажет

Igor
27.05.2017
11:30:45
Я как раз хотел предложить
https://i.gyazo.com/f1595810031aedcc15c25fadc612429a.png

Roman
27.05.2017
11:33:20
https://i.gyazo.com/f1595810031aedcc15c25fadc612429a.png
типа он еще не null, но уже null?

Google
Igor
27.05.2017
11:36:07
типа он еще не null, но уже null?
Те есть, есть два локальные “переменные” (видно в locals) с одним именем x и в watch нельзя уточнить какая именно нужна. По умолчанию он видим берет последнюю объявленную в коде.

Nikolay
27.05.2017
11:44:07
https://i.gyazo.com/f1595810031aedcc15c25fadc612429a.png
Хех, можно тоже зарепортить)

Evgeniy
27.05.2017
11:44:52
@Dolfik Я думаю, это общая проблема где-то в FCS.

Nikolay
27.05.2017
11:45:45
@Dolfik Я думаю, это общая проблема где-то в FCS.
Это же всё в репозитории visualfsharp?

Evgeniy
27.05.2017
11:46:42
@Dolfik Репорть в visualfsharp, там разберутся.

Nikolay
27.05.2017
13:57:52
https://github.com/Microsoft/visualfsharp/issues/3141

Чукча не писатель

Посмотрите плиз :3

Летучая
27.05.2017
13:58:59


Nikolay
27.05.2017
14:00:10
Я случайно создал 5 часов назад :D

Хотел просто набросать, чтобы потом вернуться домой исправить и сохранить, но случайно сохранил :D

Evgeniy
27.05.2017
16:53:29
@Dolfik Отлично. Я бы ещё заскриншотил. :)

Nikolay
27.05.2017
16:54:39
Позже постараюсь сделать

Funogram, кстати, можно уже использовать, но на свой страх и риск, ибо могу всё перепилить) Сейчас полностью готовы три метода :D

Evgeniy
27.05.2017
17:02:57
@Dolfik В нугете уже?

Nikolay
27.05.2017
17:03:10
Неа

Из гита только брать

Evgeniy
27.05.2017
17:04:24
@Dolfik Ишшуев запилил, чтобы тебе наконтрибьютили?

Nikolay
27.05.2017
17:05:05
Неа

Я ещё не всё продумал, может быть 100 раз поменяю)

Страница 169 из 772