Closed kruall closed 5 years ago
Обновите пакет под вышедший апдейт
Также языковые пакеты специально сделаны максимально просто и однообразно, думаю не стоит делать этот исключением и убрать вектора и тп, вы всегда можете добавить это в своем коде при отправке
Убраны модули, добавлены константы в Rules
Интерфейс приведен к общему виду
Если я правильно понимаю, вы убрали возможность иметь состояние?
Смотря на параллельный пр со скалой и на тамошние рассуждения про единый интерфейс, решил привести тоже к единому виду вызова act. f# позволяет использовать мутабельные значения, поэтому хранить состояния для текущей стратегии все еще можно.
Можете пояснить каким образом? в глобальных переменных?
В остальных пакетах перед получением первых данных создается объект MyStrategy
, у вас же в Runner::startRunner
это отсутствует. Также MyStrategy::act
не имеет аргумента который можно мутировать помимо action
(я ожидал увидеть что то вроде self: StrategyData
первым аргументом)
Можно заводить мутабельные значения внутри модуля добавив ключевое слово mutable. Например в quickstart на 42 строчке.
let mutable data : StrategyData = EmptyData
Присвоение происходит через <-
data <- KnownAttackBot(1, 1)
Квикстарт не компилируется:
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 29.67 ms for /project/fsharp-cgdk.fsproj.
/project/MyStrategy.fs(170,1): error FS0010: Unexpected infix operator in implementation file. Expected incomplete structured construct at or before this point or other token. [/project/fsharp-cgdk.fsproj]
Build FAILED.
/project/MyStrategy.fs(170,1): error FS0010: Unexpected infix operator in implementation file. Expected incomplete structured construct at or before this point or other token. [/project/fsharp-cgdk.fsproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:01.96
Однако посылка стратегий на сайте включена, проверяйте)
Спасибо! Работает, сейчас исправлю квикстарт
Компиляция и запуск проекта точно такие же как и у C# package. В зависимостях вместо Newtonsoft.Json стоит FSharp.Json. Добавлен quickstart для F#.