Size: a a a

2021 February 27

АВ

Андрей Вилинский... in F# Chat
S B
лично меня скорее бесит fun и function, пусть даже они для разных кейсов
а ещё inherit vs interface, val vs member, int array vs int [], type 'a Tree vs type Tree<'a>
когда всё это уже запомнил, то кажется вполне логичный лаконичный язык 👅
источник
2021 February 28

MZ

Mikhail Zhuravlev in F# Chat
Еще когда параметров типа больше одного, вроде type ('a, 'b) Tree, компилятор ругается при использовании типа, в определении не ругается. Говорит такой синтаксис нужен для ML-совместивости, не используйте, пишите Tree<'a,'b>.
источник

MZ

Mikhail Zhuravlev in F# Chat
источник

K

Kir in F# Chat
Mikhail Zhuravlev
Еще когда параметров типа больше одного, вроде type ('a, 'b) Tree, компилятор ругается при использовании типа, в определении не ругается. Говорит такой синтаксис нужен для ML-совместивости, не используйте, пишите Tree<'a,'b>.
<Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFramework>net5.0</TargetFramework>
   <NoWarn>62,40</NoWarn>
 </PropertyGroup>

Я не помню, какой из NoWarn это отключает. Ну, или пиши C<'T, 'U>.
источник

K

Kir in F# Chat
А, вон оно пишет, 62
источник

MZ

Mikhail Zhuravlev in F# Chat
Да не, зачем. Я это добавил про неравномерности языка. Ну до сишарпа все равно далеко. В котором void это тип, но без значений, и на самом деле не тип, но иногда тип. Так что fun еще ничего.
источник

MD

Mihail Dolghintev in F# Chat
Ребят, много проблема с линуксом или даже разницы не почувстую?
источник

DB

Denis Bobrov in F# Chat
По сравнению с маком или с виндой?
источник

MD

Mihail Dolghintev in F# Chat
виндой
источник

R

Roman in F# Chat
Хостинг или разработка?
источник

AH

Ayrat Hudaygulov in F# Chat
Mihail Dolghintev
Ребят, много проблема с линуксом или даже разницы не почувстую?
Если пользуешься вижлой - почувствуешь.
Если нет - никакой разницы.
источник

AH

Ayrat Hudaygulov in F# Chat
Ну и если ты не под фул фреймворк разрабатываешь
источник

A

AmiK in F# Chat
Всем привет, делаю дипломчик, хочу сделать сервер синхронизации данных приложения между множеством пользователей на базе SignalR для передачи сообщений по Http, но для синхронизации и обработки данных на сервере хочу использовать Hopac и совсем не понимаю как на нем писать. Может кто нить дописать пример такой задачи в консольном виде?

// Parallel read messages from ReadLine() |> addToCommandChannel
// Example of command (update name to "NewName")
// it executes when not busy
// after work write to channelOut |> propertyUpdated name "NewName"

// state contains variables
// state contains 2 channels

// printer watches channelOut and printing it to stdout

type Property<'a> =
   {
       Name : string
       Value : 'a
   }

type Command =
   UpdateName of Property<string>
   
type CommandResult =
   UpdatedName of Property<string>

type ModelState =
   val name : MVar<string>
   val inputCh : Ch<Command>
   val outputCh : Ch<CommandResult>

[<EntryPoint>]
let main argv =
   printfn "%A" (UpdateName { Name = "name"; Value = "kek" })
   0
источник

A

AmiK in F# Chat
Или же гопак излишний для такой задачи?
источник

MD

Mihail Dolghintev in F# Chat
фул фреймоворк это как?
источник

О

Олег in F# Chat
Mihail Dolghintev
фул фреймоворк это как?
.NET Framework, который чисто под винду
источник

AH

Ayrat Hudaygulov in F# Chat
AmiK
Всем привет, делаю дипломчик, хочу сделать сервер синхронизации данных приложения между множеством пользователей на базе SignalR для передачи сообщений по Http, но для синхронизации и обработки данных на сервере хочу использовать Hopac и совсем не понимаю как на нем писать. Может кто нить дописать пример такой задачи в консольном виде?

// Parallel read messages from ReadLine() |> addToCommandChannel
// Example of command (update name to "NewName")
// it executes when not busy
// after work write to channelOut |> propertyUpdated name "NewName"

// state contains variables
// state contains 2 channels

// printer watches channelOut and printing it to stdout

type Property<'a> =
   {
       Name : string
       Value : 'a
   }

type Command =
   UpdateName of Property<string>
   
type CommandResult =
   UpdatedName of Property<string>

type ModelState =
   val name : MVar<string>
   val inputCh : Ch<Command>
   val outputCh : Ch<CommandResult>

[<EntryPoint>]
let main argv =
   printfn "%A" (UpdateName { Name = "name"; Value = "kek" })
   0
Тебе нужен некий сервер, который получает сообщения по одному, известному всем каналу, при обработке создаёт IVar(канал тоже можно) ответа, который передает в незаполненном виде обработчику и тут же отдаёт этот IVar клиенту и переходит на следующий луп
источник

О

Олег in F# Chat
Mihail Dolghintev
фул фреймоворк это как?
.NET Core & .NET 5 - кроссплатформа
источник

AH

Ayrat Hudaygulov in F# Chat
AmiK
Или же гопак излишний для такой задачи?
Ну для практики очень даже не лишний, но для такой несложной задачи что угодно пойдёт
источник

A

AmiK in F# Chat
Ayrat Hudaygulov
Тебе нужен некий сервер, который получает сообщения по одному, известному всем каналу, при обработке создаёт IVar(канал тоже можно) ответа, который передает в незаполненном виде обработчику и тут же отдаёт этот IVar клиенту и переходит на следующий луп
Спасибо, более подробно почитаю про эти абстракции, попробую сделать)
источник