@Fsharp_chat

Страница 683 из 772
Friedrich
29.08.2018
04:31:22
А стд::вектор сильно лучше?
Шо то фигня, шо это фигня. Хотя в математическом смысле, пожалуй, лучше, да.

Именовать сущности сложно.

Google
Friedrich
29.08.2018
04:33:38
T[] - чем не жынерик аррай? В C# LinkedList двусвязный
Он намекал на то, что тип Array в C# не является генериком, и все эти T[] формально (с точки зрения рантайма) — тоже.

Просто потому, что они появились до того, как в рантайм и язык добавили генерики. И поэтому были сделаны через магию, типа как в Go.

Alexey
29.08.2018
04:35:02
Friedrich
29.08.2018
04:35:41
Action и Func - частный случай делегата, можешь свои сделать какие надо Ещё EventHandler<>, Predicate<>, MethodInvoker и хренова туча других
Претензии к делегатам, по-моему, тоже вполне обоснованы. Именно это не даёт в C# писать var foo = () => 300;

Alexey
29.08.2018
04:35:43
Friedrich
29.08.2018
04:36:14
В F# просто выдали приоритет одному из делегатных типов (из своей стандартной библиотеки), и таким образом закрыли некоторую часть проблем (но далеко не все).

Alexey
29.08.2018
04:37:43
Он намекал на то, что тип Array в C# не является генериком, и все эти T[] формально (с точки зрения рантайма) — тоже.
А жинерик типы в рантайме - разные типы. Я не вполне понимаю, почему массивы обязаны быть жинериками и какие преимущества это даёт

Friedrich
29.08.2018
04:38:11
Friedrich
29.08.2018
04:39:13
А уж через какую магию работает Nullable<T> — ни в сказке сказать, ни пером описать :)

Alexey
29.08.2018
04:39:19
Массивы - часть встроенной системы типов

Нуллабл тоже

Первое упоминание об F# 2001 год
А первое упоминание многих городов - их сожжение.

Google
Ayrat
29.08.2018
04:43:23
Массивы - часть встроенной системы типов
Не очень придуманной по началу, т.к. "это были суровые 90ые, мы копировали джаву как могли". Добавление генериков сделало жизнь лучше, но тяжёлое наследие сишарп 1.0 даёт о себе знать. Го2 тоже получит генерики. потому что Пайк упоротый и тоже думал что они не нужны и это кошмар

Ayrat
29.08.2018
04:44:56
Уже есть инфа про Go2?
Да. Мы уже во флудилке все перетерли

Friedrich
29.08.2018
04:45:11
В смысле, вы придумали? :)

Ayrat
29.08.2018
04:45:27
Если коротко запасаемся попкорном и смотрим самое эпичное переобувание в историиCS

Там драфт го2 вышел вчера

Все хипстеры теперь должны придумать отмазу почему же goway обосрался

Массивы - часть встроенной системы типов
Я к тому что, не будь как гоферы. Не защищай плохой дизайн как фанатик

Не придется переобуваться

Alexey
29.08.2018
05:00:20
не построчно, а прям сразу тейбл
By design, таблица - это однородные строки из типизированных записей. Для объединения между таблицами join-ы, для конкатенации union

А агрегаты в виде структур и массивов на уровне языка появились даже до Си, поэтому неудивительно столь тлетворное их влияние

Ayrat
29.08.2018
05:32:54
А агрегаты в виде структур и массивов на уровне языка появились даже до Си, поэтому неудивительно столь тлетворное их влияние
C появился в 72ом. ML с алгоритмом вывода Хиндли-Миллера а 73ем. Дженерики. В 73ем. У авторов сишарпа было почти 30 лет чтобы освоить фичи обоих языков

Alexey
29.08.2018
05:34:03
(я про жабу молчу-молчу-молчу)

Ayrat
29.08.2018
05:34:51
(я про жабу молчу-молчу-молчу)
Лямбды изобрели в 32ом, а в джаве они появились лишь 80 лет спустя!!!)

Вот уж где эпичный проеб

Alexey
29.08.2018
05:35:43
первые лябмды реализовывались на перфокартах?

Alexey
29.08.2018
05:36:44
Ну, нейроинтерфейс на бумаге тоже есть, и чо?

Google
Ayrat
29.08.2018
05:37:45
Ну, нейроинтерфейс на бумаге тоже есть, и чо?
Архитектура фон Неймана как бы строится на машине Тьюринга, а не на лямбда исчислении для описания алгоритмов.

Alexey
29.08.2018
05:41:10
Это приговор декларативным языкам?

Ayrat
29.08.2018
05:42:45
Это приговор декларативным языкам?
Нет конечно, просто это чуть менее оптимально, делать лямбды на императивной архитектуре. Но другой нет)

А было бы забавно пойди мысль в 40ых в другую сторону

Alexey
29.08.2018
05:43:47
ну, между декларативным "вжух" и результатом должна быть императивная реализация

Alexey
29.08.2018
05:45:10
в квантовых вычислениях вроде как должны это обойти

Ayrat
29.08.2018
05:45:23
В квантовой природе вообще нет императивного состояния например.

Alexey
29.08.2018
05:45:32
но пока между постановкой задачи и результатом как-то исторически сложилось, что есть процесс решения

а процесс - вполне себе императивное понятие

и только интегралы табличные :D

Ayrat
29.08.2018
05:46:55
а процесс - вполне себе императивное понятие
Это потому что такая архитектура. Я тут недавно в дойче читал доклад на тему теорий вычислимости

Жалко запись походу проебана.

Alexey
29.08.2018
05:48:07
вычислительная архитектура тоже не на пустом месте строится какбэ

Ayrat
29.08.2018
05:49:08
Так вот у Тьюринга она и правда такая. Подвинул каретку, считал данные, изменил данные. Но лямбды не так работают, поэтому если мы когда-то увидим реализацию архитектуры на лямбдах, тебе придётся менять свое мнение о вычислительном процессе

Потому что и Тьюринг и Черч описывали одно и то же.

вычислительная архитектура тоже не на пустом месте строится какбэ
Она строится на языке для формального описания алгоритмов. Таких описаний много, поэтому ждём. Может быть даже дождемся при нашей жизни.

Alexey
29.08.2018
05:54:12
ну а пока у нас есть императивный вычислитель, между хорошим языком и вычислителем должна быть прослойка - компилятор

Google
Alexey
29.08.2018
06:05:47
Нейросети декларативны, но реализация энергоэффективной не выходит ну никак

Andrew
29.08.2018
06:43:23
Ayrat
29.08.2018
06:50:20
from x in y where ... MAP ..., так что ли должно было быть? :)
Воу воу, палехче. Sql синтаксис выглядит по-другому Select * from TableA выбери все из таблицы А Map - это про трансформацию. Коим и является select в линк

アレクセイ
29.08.2018
06:52:13
просто map это про всё, а selеct в частности про прожекшен из коллекции, видимо чтобы облегчить переход для тех кто знает sql

Andrew
29.08.2018
06:56:20
Если человек уже знает, что такое map/bind/fold, ему не составит труда запомнить Select/SelectMany/Aggregate, а вот обратное неверно - обрушить на новичка всю «правильную» теорию ФП просто чтобы найти запись в БД было бы жестко

Roman
29.08.2018
07:03:51
А первое упоминание многих городов - их сожжение.
Ничего не значащую софистиау у нас обсуждают в @fsharp_flood. Так же там тоже много интересных технических разговоров

https://twitter.com/msftorleans/status/1034581783063408640?s=19

https://habr.com/company/microsoft/blog/420039/

Ayrat
29.08.2018
11:15:29
Наконец-то! Очень жду каментов от Павлуши

Vasily
29.08.2018
11:21:17
Ну будут, скорее всего

Ivan
29.08.2018
11:40:28
По следам вчерашнего: https://github.com/ijsgaus/Paket.SDK

Запихнул я это в SDK, теперь paket скачивается и показывает help. Но надо разобраться с paket.props поскольку он связан с папкой, где лежит.

Ayrat
29.08.2018
11:44:47
Захардкодить пути до пропсов не получится?

Ivan
29.08.2018
11:46:48
Там пути до кеша сборок. А собирается проект. Надо подумать. То ли посадить кеш сборок в user фолдер, то ли искать paket.dependencies вверх по дереву и там создавать.

Vasily
29.08.2018
11:49:01
А что ты хочешь в paket.props видеть?

Я просто в гите его не вижу твоем

Ivan
29.08.2018
11:51:52
Да я его хочу положить туда же, в сдк, и его подцеплять . <Import Project="$(NuGetPackageRoot)/paket.sdk/0.0.1-beta1/paket/Paket.Restore.targets" />

Google
Ivan
29.08.2018
11:52:22
Ну и вызов поправить на dotnet paket

Vasily
29.08.2018
11:52:32
https://stackoverflow.com/questions/49794853/what-is-the-value-of-msbuildthisfiledirectory

Короче

В props делаешь таргет

Куда пихаешь путь до пропса

Дальше в нужном месте его реюзаешь

Точнее не таргет, а Item

Ivan
29.08.2018
11:53:20
Он с пакетом приходит

И вот с этим <PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath> <PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath> Непонятно что делать

Vasily
29.08.2018
11:55:41
Ну переопределить

В своем пропсе

Ivan
29.08.2018
11:56:37
А вот куда. Ему рутовая папка нужна. Куда кеш пакетов пихать.

Vasily
29.08.2018
11:56:53
Рутовая солюшна?

Ivan
29.08.2018
11:57:07
где paket.dependencies

Vasily
29.08.2018
11:57:34
Заведи <DependencyPathDir>

И переопредели

Как $(DependencyPathDir)\..

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