@Fsharp_chat

Страница 438 из 772
Evgeniy
22.12.2017
12:05:51
Artemy
22.12.2017
12:23:56
Да, это, кстати, мне кажется особенно полезным, когда док-комменты большие.

Но вот интересно, как будет работать автогенерация fsi-файла, когда он уже есть и вручную исправлен. Неуж-то будет перезаписывать его полностью? Или-таки может добавлять лишь то, что появилось в соответствующем файле с реализацией?

Григорий
22.12.2017
12:30:21
Но вот интересно, как будет работать автогенерация fsi-файла, когда он уже есть и вручную исправлен. Неуж-то будет перезаписывать его полностью? Или-таки может добавлять лишь то, что появилось в соответствующем файле с реализацией?
как я понял из msdn описание по работе с .fsi, то их можно автосгенерировать по уже имеющемуся .fs. Файл .fsi будет требовать, чтобы реализация из .fs соответствовала его описанию из .fsi

Google
Григорий
22.12.2017
12:44:20
А почему хочется в F# сигнатуры отдельно писать?
чтобы не писать их в реализации функции)), так как иногда система типов не может вывести пользовательский тип и выводит общий

Artemy
22.12.2017
12:44:56
как я понял из msdn описание по работе с .fsi, то их можно автосгенерировать по уже имеющемуся .fs. Файл .fsi будет требовать, чтобы реализация из .fs соответствовала его описанию из .fsi
Да, я в курсе. А мне интересно, как оно будет автоегенировать файл, если он уже был ранее сгенерирован и отредактирова (например, добавлены док-комменты, всякие публичности настроены, да и просто форматирование более красивое сделано).

Evgeniy
22.12.2017
12:44:59
Artemy
22.12.2017
12:46:18
Например, в файл с реализацией новая функциональность добавлены и нужно обновить соответствующий файл fsi-файл, чтоб настроить внешнее API и задокумментировать эту новую функциональность.

Григорий
22.12.2017
12:46:24
чтобы не писать их в реализации функции)), так как иногда система типов не может вывести пользовательский тип и выводит общий
точнее, чтобы было более декларативное описание реализации функции, хоть и можно получить потом все равно сигнатуру функции в редакторе

Artemy
22.12.2017
12:47:40
Ладно, задач вопрос иначе. Почему хочется разделить сигнатуру и реализацию?
Не преступное желание же. Иногда, например, авто-вывод типов не тот, что нужно, а явное указание типов получается громоздким. Ну и чтобы не засорять файл с реализацией, неплохо было бы перенести явное указание типов в файл с сигнатурами.

А в файле с реализацией уже информацию о типах получать из всплывающих подсказок.

Evgeniy
22.12.2017
12:48:48
Отдельный файл -- это далеко. :)

Artemy
22.12.2017
12:51:23
Ну и вообще можно даже это как этап проектирования рассматривать. Мол, сначал продумываешь API своей библиотеки чисто на уровне входных и выходных значений, а после уже приступаешь непосредственно к реализации. Хотя это, конечно, можно и в файле с реализацией сделать, сделав функции просто заглушками.

Григорий
22.12.2017
12:51:25
вообще было бы удобно, если бы сигнатуру функции, которую выводит редактор, например, тот же vs code, можно было подправить и тебе показало где что подправить в реализации функции

Google
Artemy
22.12.2017
12:52:36
Если есть fsi-файл, то в файле с реализацией при несоответствии типа сигнатуре выводится ошибка.

И оно даже не скомилится

Вот же пример ошибки, собственно: https://camo.githubusercontent.com/e14158266ad2cad335da6ac4ad84a0d343ebcc3f/687474703a2f2f692e696d6775722e636f6d2f57594b79327a5a2e706e67

Григорий
22.12.2017
12:55:44
Так оно так и работает сейчас
я про подсказки в vs code когда ты уже написал функцию, он тебе показывает сигнатуру функции над ней

чтобы ее можно было редактировать

Artemy
22.12.2017
12:56:09
А, ну это, как я понимаю, чисто к тулингу относится.

Artemy
22.12.2017
12:56:30
Но спорная фича

Григорий
22.12.2017
12:56:50
но по сути та же аннотация перед функцией

Artemy
22.12.2017
12:56:51
По крайней мере, однозначно не приоритетная на данный момент.

Artemy
22.12.2017
12:59:28
А, понятно

Такое себе

Григорий
22.12.2017
13:00:43
let foobar : TypeA -> TypeB -> TypeC = fun x y = ...
впринципе то что я хотел =)

A64m
22.12.2017
13:03:22
type FooBar = A -> B -> C let foobar : FooBar = ...

Evgeniy
22.12.2017
13:14:00
Такое себе
Зато локально. :)

Google
Evgeniy
22.12.2017
13:32:57
Другое дело, что действительно громоздкая сигнатура -- это повод задуматься.

tm
22.12.2017
13:35:24
Ребят

Нужен умный ответ на глупый вопрос

Я С# до мозга костей. Хочу F# попробовать. НО никак не могу придумать проект который нужно реализовать

Нету ли у вас запасных идей? Как вы начинали этот путь, или быть может есть OpenSource прикольный?

Григорий
22.12.2017
13:42:03
Я С# до мозга костей. Хочу F# попробовать. НО никак не могу придумать проект который нужно реализовать
свой dsl, аля https://habrahabr.ru/post/116301/ =), нейронка, парсер страниц, морской бой, блек джек, своя виртуальная машина + свой простой язык, плагин к Компасу 3d (внезапно), админка для сайта

Kirill
22.12.2017
13:42:55
можно ещё кусок существующей бизнес лапши на C# переписать на F#

Dmitry
22.12.2017
13:43:44
между прочим, что сейчас актуально для веба на F#? Всё ещё Suave? Или что-то ещё подтянулось? Как дела с ASP.NET на Core?

Aleksey
22.12.2017
13:44:02
Если хочется проникнуться духом ФП, то стоит написать какой-нить парсинг на парсер-комбинаторах

Калькуляторы и блогплатформы не дадут ощущения paradigm shift

Artemy
22.12.2017
13:45:19
между прочим, что сейчас актуально для веба на F#? Всё ещё Suave? Или что-то ещё подтянулось? Как дела с ASP.NET на Core?
Для .NET Core сейчас, как минимум, такое используют: https://github.com/giraffe-fsharp/Giraffe https://freya.io/

Для WebSharper тоже обещают в скором времени поддержку .NET Core завезти

В Roadmap написано, что в 1-м квартале 2018

Dmitry
22.12.2017
14:15:30
Для .NET Core сейчас, как минимум, такое используют: https://github.com/giraffe-fsharp/Giraffe https://freya.io/
А Freya vs Giraffe - есть какие-нибудь принципиальные нюансы, различия? Просто ни то, ни другое не пробовал, лишь с Suave знаком

Artemy
22.12.2017
14:16:02
Ну различия-то в подходах есть, вроде

Но я не пробовал

Сам бы хотел узнать мнения по поводу обеих библиотек

Google
Artemy
22.12.2017
14:16:46
Как раз собираюсь Web API описать и думаю, что выбрать

Вообще, Giraffe очень на Suave похожа

По крайней мере, на первый взгляд

Dmitry
22.12.2017
14:25:26
а что за task в Жирафе? Где почитать теорию по концепции?

Evgeniy
22.12.2017
14:29:44
а что за task в Жирафе? Где почитать теорию по концепции?
Computational expression для Task<'T> вместо async{ ... }

Igor
22.12.2017
14:31:16
Нету ли у вас запасных идей? Как вы начинали этот путь, или быть может есть OpenSource прикольный?
Какого нибудь полезного бота для телеграма или мобильное приложение на fable + ReactNative

Igor
22.12.2017
14:32:37
React - TRIGGERED !!0!00
Ну или Xamarin ?

Max
22.12.2017
14:33:05
Ну или Xamarin ?
Во, норм)

Если С# стек, то Xamarin

Кстати, вчера буквально смотрел, Xamarin + F# уже более-менее

Не так больно

Max
22.12.2017
14:42:34
Есть примеры?
Доберусь до ноута, поищу. Но я из семпла развернул просто, посмотреть

Кажется там был F# + Fable

Но это не точно

Но имхо делать либы из F# и юзать в С# пока намного удобнее

Fill
22.12.2017
22:00:07
А много тут кто прямо на работе F# использует?

Google
Fill
22.12.2017
22:00:42
или вообще фп ЯП?

Видимо нет

Anton
22.12.2017
22:03:24
Унизил и оскорбил

Dmitriy
22.12.2017
22:06:30
Каждый день)

Fill
22.12.2017
22:08:06
Каждый день)
любимец богов

Dmitriy
22.12.2017
22:08:33
Ну дык он решает проблемы

А ну и лисп немного, потому что мсье емаксер

Roman
23.12.2017
04:15:16
Привет!

Evgeniy
23.12.2017
05:58:25
https://twitter.com/theimowski/status/944337910219886592

Aleksey
23.12.2017
06:09:59
или вообще фп ЯП?
Haskell only каждый день :)

Evgeniy
23.12.2017
07:06:17
А много тут кто прямо на работе F# использует?
Использую F# немного, но я инженером работаю. Наверное, мой опыт нерелевантен.

Fill
23.12.2017
07:45:28
Я просто заметил, что фп - болезнь. Как попробовал, уже не хочешь использовать что-то другое. А применения как-бы хер найдёшь.

Evgeniy
23.12.2017
07:57:46
¯\_(ツ)_/¯

Alexey
23.12.2017
08:00:48
+1

Главное сагитировать окружение и руководство

Диёр
23.12.2017
08:10:27
Или открыть стартап?

Evgeniy
23.12.2017
08:14:28
https://twitter.com/MokoSharma/status/944447583711264768

@nevoroman Завтра твой пост? :)

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