
Nikolay
15.08.2017
15:03:30

Vasily
15.08.2017
15:03:30
не за что
Выглядит примерно так:
let defaultShipping=http
{
param "shippingName" "masa"
param "shippingAddress" "masapay No.88"
param "shippingPostalCode" "MASA88"
param "shippingCountry" "CN"
param "shippingState" "masa"
param "shippingCity" "masa"
param "shippingEmail" "null@masapay.com"
param "shippingPhoneNumber" "021-1234567"
}

Mike
15.08.2017
15:06:39
А у тебя просто dotnet restore норм работал?
Да, даже собрался и заработал. Я пытаюсь на базе github.com/FSharpBristol/FSharp-Template-for-Aws-Lambda сделать то, что мне нужно. Но пока ни с http, ни с dynamodb работать не получается.

Google

Nikolay
15.08.2017
15:07:18
Я не помню, там запятая нужна, или нет?

Vasily
15.08.2017
15:09:45
Кортежи бы выглядели по-другому
К тому же суть билдера в другом
Он по факту строит шаблон
Все никак туда контекст не добавлю

Igor
15.08.2017
15:10:54

Vasily
15.08.2017
15:11:10
Чтобы было 'c->HttpRequestMessage->'c
Тьфу

Андрій
15.08.2017
15:11:28

Vasily
15.08.2017
15:11:40
HttpRequestMessage->'c->HttpRequestMessage

Google

Nikolay
15.08.2017
15:12:54
Ну и фиг с ним
Ну я специально делал порт под .Net Core стандартной либы
Может созрею потом для своей, но пока нужды нет

Андрій
15.08.2017
15:14:22
F# сейчас почти весь на этих старых отмирающих классах. Поэтому при переходе на Core 1.0 было тяжко.

Nikolay
15.08.2017
15:15:50
Мне вообще сама концепция передавать какой-то объект при запросах не очень нравится
Довольно криво выглядит в ФП, по моему мнению

Vasily
15.08.2017
15:20:30
Ну там фишка в том. что объект приезжает в билдер

Friedrich
15.08.2017
15:34:40
А смотрите как можно: я с помощью билдера дефайню у себя ресурсы. И получаю из билдера какую-то функу типа params -> HttpResponse
Эта функа, полученная из билдера, будет реюзать HttpClient
Типа так:
let resource = buildResource() // инстанцирует клиент и готово к запросам
let result1 = resource.get(100500)
let result2 = resource.get(200500) // эти два вызова реюзают клиент
let resource' = buildResource() // а вот этот ресурс будет с другим экземпляром клиента работать
Ну, это пока не готовая концепция, а так, мысли.

Roman
15.08.2017
15:38:16

Igor
15.08.2017
16:03:30
А как в XUnit Assert сравнивать списки []?
Сейчас сравниваю так: Assert.Equal([] |> box, actual |> box)
но чувствую что есть более правильный путь

Vlad
15.08.2017
16:07:53
круто, может скоро и выйдут на новый уровень
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/f-and-net-core-roadmap-update/

Evgeniy
15.08.2017
16:09:44
Она netstandard1.6, работает поверх xUnit.

Снежный
15.08.2017
16:11:54
Всем привет. Кто-нибудь сталкивался с Suave.DotLiquid?

Igor
15.08.2017
16:13:11

Андрій
15.08.2017
16:22:48
FsCheck - круть!

Roman
15.08.2017
16:27:28

Google

Снежный
15.08.2017
16:27:47
спасибо, посмотрю


Evgeniy
15.08.2017
17:36:51
Я сегодня решил еще разок взглянуть на возможный encoding для классов типов в F#.
Это довольно интересно. Взгляните, если не видели.
https://github.com/MattWindsor91/visualfsharp/blob/hackathon-vs/examples/fsconcepts.md
Если я правильно понял, то в рамках этого концепта должны добавится новые правила для вывода типов и несколько аннотаций.
В чистом виде, без изменений компилятора, это выглядит как-то так:
type Eq<'A> =
abstract equal: 'A -> 'A -> bool
let equal<'A,'EqA when 'EqA : struct and 'EqA :> Eq<'A>> a b =
Unchecked.defaultof<'EqA>.equal a b
[<Struct>]
type EqInt =
interface Eq<int> with
member this.equal a b = a = b
equal<int, EqInt> 5 5
С предлагаемыми изменениями:
[<Trait>]
type Eq<'A> =
abstract equal: 'A -> 'A -> bool
let equal a b = Eq.equal a b
[<Witness>] // a.k.a instance
type EqInt =
interface Eq<int> with
member equal a b = a = b // no 'this.'
equal 5 5
Довольно чистенький код и без новых ключевых слов (в традициях F#).


Igor
15.08.2017
17:50:26
По поему тоже кратко и выразительно.
Современная практика менять ключевые слова на аннотации, в котлин тоже заменили некоторые к.с. java, типа volatale на анноташки.

Artemy
15.08.2017
17:59:28
> анноташки
^_^

Evgeniy
15.08.2017
17:59:46
Сайм, кстати, недавно обновил раздел Research на сайте F#. Добавил как раз туда статью про тайпклассы.

Artemy
15.08.2017
18:00:55
Всё это таки планируют добавить или ещё думают?

Evgeniy
15.08.2017
18:01:01
Думают.
Сайм говорил, что компилятор в хорошей форме, если его можно так неплохо расширить. Но саму фича очень много обсуждений вызывает.

Artemy
15.08.2017
18:01:57
Ждут поддержки на уровне среды, вроде, так?

Evgeniy
15.08.2017
18:03:47
Сайм говорил, что он не торопится из-за C#. Непонятно, что дизайнеры в следующий раз придумают, вдруг тайпклассы, нужно будет какой-то интероп делать.

Artemy
15.08.2017
18:06:04
Это да, там ведь тоже обсуждают тайпклассы, но со своим названием.
Типа пока ещё мало названий одного и того же существует.

Ivan
15.08.2017
19:44:17

Google

Evgeniy
15.08.2017
19:47:35

Ivan
15.08.2017
19:47:49
Да

Evgeniy
15.08.2017
19:48:17
Да
Она старая.
http://www.mlworkshop.org/2016-7.pdf
Привет!

Ivan
15.08.2017
19:50:18
Нет, я имел в виду обновление. Это я читал. Кстати прототип концептов в C# и трейтов в F# они делали одновременно на одном хакатоне. Уже два или три года назад. И все мыслят ?

Evgeniy
15.08.2017
19:51:10
Список всех исследовательских статей про F#.
https://github.com/fsharp/fsfoundation/blob/gh-pages/teaching/research.md

Ivan
15.08.2017
19:52:32
Обрати внимание на имена. Похоже в недрах приходят к общему мнению.
Claudio Russo, Matthew Windsor, Don Syme, Rupert Horlick, James Clarke:
We have extended the open source C# compiler and language service, Roslyn,
+with pervasive support for type classes and have prototyped a more minimalist design for F#.

Anton
15.08.2017
20:06:35
Коротко: фронтенд разраб (js), хочу просто попробовать F#) Надеюсь, некоторые тривиальные вопросы по языку здесь не воспринимаются в штыки)

Evgeniy
15.08.2017
20:08:52

Дмитрий
15.08.2017
20:09:28

Anton
15.08.2017
20:09:43
основной стек react-redux)
писал на нг1 и 2)
на втором немного)

Evgeniy
15.08.2017
20:10:05
Только, пожалуйста, придерживайтесь тематики чата. ?
Для любых других обсуждений есть флудилка: @dotnet_chat. Спасибо.

Anton
15.08.2017
20:11:17
ок, понял)

Evgeniy
15.08.2017
20:12:09
@antonptitsyn А тебя больше Fable интересует? Или F# на .NET?

Google

Anton
15.08.2017
20:12:32
Fable))
но сначала попробую на .net

Roman
15.08.2017
20:14:19

Anton
15.08.2017
20:15:19
на fable это выглядит пока для меня диковато) хотя, мб вопрос синтаксиса)

Дмитрий
15.08.2017
20:15:51

Anton
15.08.2017
20:16:07
F#+babel, я так понял))
http://fable.io

Nikolay
15.08.2017
20:17:10
Есть примеры с Elm на F# :)

Дмитрий
15.08.2017
20:17:23
Я правильно понял что это f# по верх js?

Evgeniy
15.08.2017
20:17:27