Вопросы с тегами [f#]

1

голосов
1

ответ
54

Просмотры

How to consume this EF Core C# async method in F#?

I am using F# with Entity Framework and I can't get my head around consuming C# async methods from F#. Despite others SO answers related to similar issues can't really get my head around. Here is my attempt with the code below, initially synchronous: let getAirport (id: Guid) = use context = new MyContext() context.Flights.Find id |> (fun x -> if box x = null then None else Some x) And its async counterpart: let getAirportAsync (id: Guid) = async { use context = new MyContext() let! flight = context.Airports.FindAsync id |> Async.AwaitTask return (fun x -> if box x = null then None else Some x) } However, when both are called in the main: [] let main argv = let myGuid = Guid.NewGuid() let airport = { Id = myGuid Name = "Michelle" X = 42.0 Y = 42.0 } AirportRepository.addAirport airport let thisAirport = AirportRepository.getAirport myGuid let thisAirportToo = AirportRepository.getAirportAsync myGuid |> Async.RunSynchronously assert (thisAirport = Some airport) assert (thisAirportToo = Some airport) 0 It cannot compile: Program.fs(61, 13): [FS0001] The type '('a -> 'a option)' does not support the 'equality' constraint because it is a function type Program.fs(61, 30): [FS0001] This expression was expected to have type ''a -> 'a option' but here has type ''b option' I read: https://medium.com/jettech/f-async-guide-eb3c8a2d180a https://docs.microsoft.com/en-us/dotnet/fsharp/tutorials/asynchronous-and-concurrent-programming/async C# async / await method to F#? I thought the process to consume an async C# method was: Pass the C# method to |> Async.AwaitTask Pass the result to let! Return that result Wrap everything in an async block which forms the body of an async F# function Use that newly async created F# function by passing it to |> Async.RunSynchronously What am I missing here?
Ehouarn Perret
1

голосов
1

ответ
28

Просмотры

как определить меру как кратные другое измерение

Я пытаюсь определить Isaron быть 43,2 раза яйцо, но я получаю исключение: [] введите яйцо [] тип Isaron = (43,2) * (Egg) FS0618 ошибка: Invalid литерал типа Как правильно определить эту меру ?
1

голосов
1

ответ
56

Просмотры

F# : wrap tuples into multiple lines

Скажем, у меня есть простое дерево: тип дерева = | BinaryNode из дерева * Int * Дерево | член Совета this.Sum = соответствовать этому с | Подсказка -> 0 | BinaryNode (слева, значение справа) -> left.Sum + значение + right.Sum и определяют дерево по: пусть дереву = BinaryNode (BinaryNode (Совет, 2, Совет), 1, BinaryNode (Tip, 3, Совет) ) Но я думаю, что это очень трудно читать, если у нас есть дерево с несколькими узлами. Таким образом, я обернуть его на несколько строк, как показано ниже: [] пусть основная ARGV = пусть дерево = BinaryNode (BinaryNode (Tip, 2, Tip), 1, BinaryNode (Tip, 3, Tip)) Printf "% A" (tree.Sum ) 0 Приведенный выше код работает, как ожидалось в Visual Studio. Но когда я использую Визуальный код Студия с Ionide, это напоминает мне, что: Lint: Запятая в кортеже конкретизации должно сопровождаться одним пробелом. Мой вопрос: Я запутался. Это плохо, чтобы обернуть кортежи в несколько строк? Если нет, то, как сделать что-нибудь вкусненькое заткнуться? Если ответ да, как улучшить читаемость, когда мы имеем десять узлов?
itminus
1

голосов
0

ответ
77

Просмотры

Как вернуть JSON в ShouldInterceptRequest на андроид (он всегда возвращается строка)

При возврате из JSON: переопределить this.ShouldInterceptRequest (вид: WebView, запрос: IWebResourceRequest) = пусть строк = Customer.fakeData 1 пусть й = Shared.jsonToStream (строки) новый WebResourceResponse ( "текст / JSON", "UTF-8", е) Он показывает на странице в виде строки, не является объектом JSON. Я также попробовать с «приложения / JavaScript».
mamcx
1

голосов
1

ответ
26

Просмотры

Sending SSO cookies when doing an ajax call in websharper

I've created a website using WebSharper and has stumbled into a problem. I wish to integrate the site with VSTS REST API. To do that (seemlessly) I need to forward a session cookie. How do I do that in an WebSharper-Ajax call. My current implementation of the Ajax call prior to needing this looks like this and works just fine for the other needs I've had so far let Ajax (request : Request) = let httpMethod = request.Method let url = request.EndPoint let data = request.AsJson let success ok = System.Action( fun res _ _ -> let result = (res :?> string |> Json.Parse) if JS.HasOwnProperty result "error" then { ErrorType = result?error Reason = result?reason } |> pushError else result |> Success |> ok ) let contentType = Union.Union2Of2("application/json") try Async.FromContinuations let settings = JQuery.AjaxSettings( Url = url, DataType = JQuery.DataType.Text, Type = As httpMethod, Success = success ok, ContentType = contentType, Error = System.Action(fun jqXHR _ _ -> let error = jqXHR?responseText |> Json.Parse { ErrorType = error?error Reason = error?reason } |> pushError |> ok ) ) match data with Some data -> settings.Data () JQuery.Ajax(settings) |> ignore with e -> async { return { ErrorType ="uncaught exception"; Reason = e.Message } |> Error }
Rune FS
1

голосов
0

ответ
54

Просмотры

F # RProvider rworldmap joinCountryData2Map поля, конструктора или члена «joinCountryData2Map» не определен

Я играю с F # RProvider и я не могу сделать библиотеку работу плагина. Rworldmap, кажется, успешно загружен, но F # не распознает связанные функции, как joinCountryData2Map. Я пытаюсь код от Mathias Brandewinder блог - Создание карт с помощью R, Deedle и F # провайдеров типа я открываю эти пространства имен: открытых FSharp.Data открытого RProvider открытого RProvider.``base`` открытой Deedle открытого Deedle.RPlugin открытого RProvider.rworldmap До сих пор все хорошо. Нет ошибок. Когда я пытаюсь запустить этот код: пусть карта = R.joinCountryData2Map (DF, «ISO3», «коды») R.mapCountryData (карта, «Pop2000») Я получаю эту ошибку: FS0039 об ошибке: Поле, конструктор или элемент ' не определен joinCountryData2Map.
Michal
1

голосов
0

ответ
33

Просмотры

Почему я не могу обновить строку в .db файл * при использовании Common.DatabaseProviderTypes.SQLITE?

Я следую схеме, как в CRUD образце - SQLProvider Но когда дело доходит до обновления данных в базе данных, базы данных в файле data.db остается unchange изменения ЛПЭ = запрос {при г в ctx.Main.User делать где (r.User = "bangkieu") выберите г} |> Seq.iter (весело с -> c.User
AI2016
1

голосов
1

ответ
72

Просмотры

Polymorphism for both function inputs and outputs

Polymorphism for inputs was solved using functional idiomatic approach and now looking forward to solve it for return types that involved a JSON serializer which actually demands to know the type of the record. Input parameters were enforced to have some specific fields as mandatory and the solution allowed to pass different types as long as the field members existed. Solution was referred to as SRTP or structural (or duck) typing. Now I've a roadblock where this function is essentially a web service call which returns the latest JSON schema based on the type of the object passed. I pass in mandatory fields (Registration, Owner, Wheels) only and the server returns the original mandatory data along with the custom fields and both types (Car, Truck) have different kinds of JSON schemas. The block is with JSON serializer that needs to know the type of the object being passed and the type has to be hard coded in order to serialize. So in a way function has both polymorphic inputs and outputs. type Car = { Registration: string Owner: string Wheels: int customAttribute1: string customAttribute2: string } type Truck = { Registration: string Owner: string Wheels: int customField5: string customField6: string } let inline someComplexFun v = let owner = (^v: (member Owner: string)(v)) let registration = (^v: (member Registration: string)(v)) // send the mandatory fields to server to fetch rest of the custom fields. use response = request.GetResponse() :?> HttpWebResponse use reader = new StreamReader(response.GetResponseStream()) use memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(reader.ReadToEnd())) (new DataContractJsonSerializer(typeof)).ReadObject(memoryStream) :?> Car Now this last line essentially will change if Truck type was passed (new DataContractJsonSerializer(typeof)).ReadObject(memoryStream) :?> Truck Note: Now If there's a lateral approach using a different functional idiomatic way, I'm flexible to choose a different path. As long as function can not only receive and return these two specific types. P.S. Is reflection an answer to this?
App2015
1

голосов
0

ответ
66

Просмотры

Удаление Fparsec трубы из # проекта F

Таким образом, я нашел своего рода заброшен проект с открытым исходным кодом, который использует fparsec разобрать некоторые graphql синтаксис. Но я должен был бы это в .net ядра, и поэтому я пытался портировать его. Но проблема в том, что она использует fparsec библиотеки труб, не переносимые в .net ядра. Поэтому я хотел бы раскошелиться репо и удалить библиотеку труб, так что я могу порт остального .net ядра даже жесткий я не знаю, F # или есть опыт работы в fparsec. Это F # парсер: https://github.com/Lauchi/graphql-net/blob/master/GraphQL.Parser/Parsing/Parser.fs Я думаю, что мне удалось перевести некоторые вещи обратно fparsec, что я получил до сих пор:% [...] является выбор [...] %% '#' является PChar '#' %% 'привет' является PString 'привет' %% '[' -..- что-то вроде PChar '[' >>. Но теперь вы, ребята, возможно, понял, что я на самом деле понятия не имею, что я делаю, потому что синтаксис очень запутанной для меня. Я понимаю, что синтаксический анализатор и комбинатор в теории и у меня есть некоторое представление о функциональном программировании уплотнительного и как я передать функции и параметры вокруг, но я просто не могу читать синтаксис и чувствовать себя очень потерян. Может кто-нибудь с большим количеством некоторого опыта дать мне несколько советов о том, как я могу изменить эту библиотеку в обычный fparsec код?
Simons0n
1

голосов
0

ответ
68

Просмотры

Ошибка работает C # / F # программы на Mac OS

И, С # и F # привет примеры приложений мира консоли, неудачно со следующим сообщением: операция Debugger неудачный запуск: программа «» не существует. Я не могу заставить его работать правильно. сайт Microsoft говорит, что никакие дополнительные вещи не должны быть установлены для того, чтобы работать должным образом источник я уже переустановить Visual Studio, который не помог. Если я выбираю запустить -> запустить с пользовательской конфигурацией и отключить «запустить во внешней консоли», это работает отлично. Однако я не могу найти настройки, чтобы сделать это по умолчанию, и я хотел бы, если бы просто работать, и моя установка была прекрасна. Надеюсь, что кто-то имеет ключ. заранее спасибо
Simon
1

голосов
0

ответ
58

Просмотры

Xamarin.Android F # шаблон не удается построить на VS2017 15.7.1

У меня есть Visual Studio 2017 Версия 15.7.1 + Xamarin.Android 8.3.0.19 работает на Win7. Когда я создаю F # проект на основе шаблона Blank App Android, построить не удается из-за ошибки: 1> FSC: ошибка FS0193: Не удалось найти файл «C: \ Users \ vhrd47 \ Source \ РЕПО \ app5 \ app5 \ ProvidedTypese4595d25-58bd -4f87-96fc-ec2d29402d62.dll. Что я делаю неправильно ?
mastracu
1

голосов
1

ответ
25

Просмотры

Получение Отсутствующих ошибок методы в FSharp.Data

но это не так. Кто-нибудь есть какие-нибудь идеи?
MClagett
1

голосов
0

ответ
51

Просмотры

F # и P / Invoke с использованием параметров из

Я работаю с API третьей стороны и пытается перевести следующую C # код в F #: [DllImport ( "libfsdk.so", EntryPoint = "FSDK_FeedFrame", SetLastError = верно, ExactSpelling = верно, CallingConvention = CallingConvention.Cdecl) ] частный статический ехЬегп INT FSDK_FeedFrame_Old (интермедиат Tracker, долго CameraIdx, внутр Image, исе долго FaceCount, [Out, MarshalAs (UnmanagedType.LPArray)] длинный [] идентификаторы, длинные MaxSizeInBytes); открытый статические INT FeedFrame (интермедиат трекер, длинный CameraIdx, Int изображение, исе долго FaceCount, задолго [] идентификаторы, длинные MaxSizeInBytes) {Идентификаторы = новый длинный [MaxSizeInBytes / 8]; вернуть FSDK_FeedFrame_Old (ОТСЛЕЖЫВАТЕЛЬ, CameraIdx, изображение, исх FaceCount, идентификаторы, MaxSizeInBytes); } Моей попытки до сих пор это: [] ехЬегпа INT частного FSDK_FeedFrame (интермедиат Tracker, int64 CameraIdx, ИНТ изображения, int64 и FaceCount, [] Int64 [] идентификаторы, Int64 MaxSizeInBytes); пусть FeedFrame (Путь: INT, CameraIdx: int64, изображения: INT, faceCount: int64 ByRef, [] идентификаторы: Int64 [] ByRef, MaxSizeInBytes: int64) = = пусть идентификаторы-массив (интермедиат MaxSizeInBytes) 0L пусть изменяемые к = 0L пусть Рез = FSDK_FeedFrame (Tracker, CameraIdx, изображения, и к, иды, MaxSizeInBytes) Рез я попытался варианты ByRef в списке аргументов, но код результата всегда указывает неверный аргумент. Есть ли специальный вариант мне нужно, так что я могу использовать этот метод P / Invoke? MaxSizeInBytes) Рез Я попытался варианты ByRef в списке аргументов, но код результата всегда указывает на недопустимый аргумент. Есть ли специальный вариант мне нужно, так что я могу использовать этот метод P / Invoke? MaxSizeInBytes) Рез Я попытался варианты ByRef в списке аргументов, но код результата всегда указывает на недопустимый аргумент. Есть ли специальный вариант мне нужно, так что я могу использовать этот метод P / Invoke?
Rob Lyndon
1

голосов
1

ответ
192

Просмотры

Как построить F # проект через файл .fsproj?

У меня есть один F # файл, который я строю до сих пор с помощью КФС --standalone Foo.fs в один исполняемый файл, который я могу распространять другим лицам, которые не установлены на F # набор инструментов. Теперь я думал перейти к .fsproj файл, который масштабируется лучше, чем больше файлов, добавляемых в проект. Рассмотрим следующий .fsproj файл: Exe netcoreapp2.1 Если я бегу Dotnet сборки в каталоге, который содержит оба файла, то я получаю следующий результат: C: \ Users \ Билл Гейтс \ .nuget \ пакеты \ fsharp.net.sdk \ 1.0 .5 \ сборка \ FSharp.NET.Core.Sdk.targets (170,9): ошибка MSB6006: "dotnet.exe" завершился с кодом -2147450730. [C: \ Temp \ Foo.fsproj] Поиск кода ошибки -2147450730 не помогло мне. Любая идея, что не так с моей установкой? Любые намеки, как создать самостоятельный исполняемый файл из F # файла? Я использую следующие версии .NET:
Max Maier
1

голосов
0

ответ
65

Просмотры

Использование netcoreapp2.1 API, из библиотек

Я хотел бы использовать функцию на основе Span GetBytes доступны в netcoreapp2.1 из библиотеки; это довольно низкоуровневый код. Поэтому библиотека L хочет использовать ReadOnlySpan * Span -> Int перегрузки: И в настоящее время; библиотека домена D (netstandard2.0) -> L, и приложение A (netcoreapp2.1) -> D. Каковы правильные рамочные цели для L, A и D?
Henrik
1

голосов
1

ответ
32

Просмотры

Ожидание строк базы данных для загрузки с помощью TableDependency и F #

У меня есть F # проект, который загружает некоторые файлы внешней подсистемы, а затем использует таблицу Завис подождать несколько строк, которые будут добавлены в таблицу в качестве побочного эффекта. Таблица Dependency используется ниже типа, чтобы наблюдать за изменениями БД. Он срабатывает, когда строка добавляется / изменила пользовательское событие / все: // просто использовать этот тип для RecordChangedEvent маршалу ид мы хотим во что-то типа AccountLoaded () = пусть изменяемый someId = «» // это имя свойства совпадает с имя столбца таблицы (someId) член this.SomeId с ГЭТ () = someId и установить (значение) = someId Observable.filter (весело е -> isInSet е) |> Observable.subscribe accountLoadedHandler |> игнорировать doMoreWork (), но просто продолжает doMoreWork, не дожидаясь всех событий, мне нужно выше. Нужно ли мне использовать задачу или асинхра? F # агенты?
John
1

голосов
0

ответ
65

Просмотры

Обработка исключений с FParsec

Я хотел бы быть в состоянии разобрать файл без запуска программы исключения и остановить программу на первую ошибке. Я использую это: пусть разбор входного = ПОИСКПОЗ запустить pprog входа с | Успех (результат, _, _) -> результат | Отказ (тзд, _, _) -> failwith тзд пусть программа = синтаксический Myfile переменная программы имеет типа AST.program (нет необходимости показывать реализации), благодаря соответствует шаблону функции синтаксического анализа. Если бы я только сделать это: пусть программу = запустить pprog Myfile программа имеет типа ParserResult, который, следовательно, не поддающийся анализу. Мне было интересно, если есть способ, чтобы не врезаться в программе исключение начало?
Foxy
1

голосов
0

ответ
122

Просмотры

Xamarin формы: Нажмите и Double Tap

Я смотрю на Xamarin Forms возможности для обработки взаимодействия экрана на самом высоком возможном уровне - в идеале 1 набор кода для обеих прошивкой и Andoid. Я создал новое приложение XF (мультиплатформенная -> App в F #, не XAML), и я добавил это шаблон по умолчанию: тип приложения () = унаследовать приложения () пусть стека = StackLayout (VerticalOptions = LayoutOptions.Center) пусть LABEL = Метка (XAlign = TextAlignment.Center, Text = "Добро пожаловать на F # Xamarin.Forms") дайте tapRecognizer = новый TapGestureRecognizer () позволяют handleTapEvent (отправитель: Object) (арг: EventArgs) = label.Text
Jamie Dixon
1

голосов
1

ответ
53

Просмотры

Как передать аргументы из HTML страницы, составленной Js приложения, используя Elmish с Fable

В вяза вы можете передать флаг в приложение вяза, как так: HTML / JS вар приложение = Elm.Main.init ({узел: document.getElementById ( 'ильм'), флаги: Date.now ()}); Приложение вяз затем получает параметры по инициализации: инициализации: Int -> (модель, Cmd Msg) INIT CURRENTTIME = ... Я через басни документации и мне не ясно, как я могу достичь того же. Я вижу, есть вариант Program.runWith для отправки параметров на функции инициализации, но я не могу найти документацию и я не могу видеть из скомпилированного JavaScript, как я должен вызвать основную функцию из файла HTML. С басни, я хочу, чтобы иметь возможность сделать что-то подобное в HTML файл, но не уверен, что «Program.Run ..» был бы: Program.Run ({время: Date.now ()}); Спасибо
onemorecupofcoffee
1

голосов
0

ответ
51

Просмотры

запрос Elasticsearch на AWS

Я пытаюсь сделать простой запрос к elasticsearch на AWS. Тем не менее, когда я исполню это мой .fsx файл на OSX, используя VSCode + Ionide, он не со следующими исключениями: Elasticsearch.Net.UnexpectedElasticsearchClientException: Метод или операция не выполняется. ---> System.NotImplementedException: Метод или операция не выполняется. на Elasticsearch.Net.HttpConnection.CreateHttpClientHandler (Elasticsearch.Net.RequestData requestData) [0x00032] в: 0 в Elasticsearch.Net.HttpConnection + c__DisplayClass2_0.b__0 (System.Int32 ч) [0x00000] в: 0 в System.Collections.Concurrent .ConcurrentDictionary`2 [TKey, TValue] .GetOrAdd (TKey ключ, System.Func`2 [Т, TResult] valueFactory) [0x00034] в: 0 в Elasticsearch.Net.HttpConnection.GetClient (Elasticsearch.Net.RequestData requestData) [ 0x00044] в: 0 в Elasticsearch.Net.HttpConnection. #load "Elasticsearch.Net.Aws.fsx" открытая система с открытым Nest открытого Elasticsearch.Net открытого типа Elasticsearch.Net.Aws Payload = {широта: двойной; долгота: двойная} типа телеметрическая = {полезная нагрузка: полезная нагрузка} пусть credentialsProvider = новые AwsCredentials (AccessKey = "мой Accesskey", SecretKey = "мой SecretKey") пусть staticCredentialsProvider = новый StaticCredentialsProvider (credentialsProvider) пусть HttpConnection = новый AwsHttpConnection ( "ар-юго-восток -2" , staticCredentialsProvider) пусть бассейн = новый SingleNodeConnectionPool (новый Uri ( "https://search-MY_INDEX-SOME_ID.ap-southeast-2.es.amazonaws.com")) пусть конфигурационные = новые ConnectionSettings (пул, HttpConnection) config.DefaultIndex ( "MY_INDEX") |> игнорировать пусть клиент = новый ElasticClient (конфигурации) пусть результат = client.Search (новый SearchRequest ()) открытая система с открытым Nest открытого Elasticsearch.Net открытого типа Elasticsearch.Net.Aws Payload = {широта: двойная; долгота: двойная} типа телеметрическая = {полезная нагрузка: полезная нагрузка} пусть credentialsProvider = новые AwsCredentials (AccessKey = "мой Accesskey", SecretKey = "мой SecretKey") пусть staticCredentialsProvider = новый StaticCredentialsProvider (credentialsProvider) пусть HttpConnection = новый AwsHttpConnection ( "ар-юго-восток -2" , staticCredentialsProvider) пусть бассейн = новый SingleNodeConnectionPool (новый Uri ( "https://search-MY_INDEX-SOME_ID.ap-southeast-2.es.amazonaws.com")) пусть конфигурационные = новые ConnectionSettings (пул, HttpConnection) config.DefaultIndex ( "MY_INDEX") |> игнорировать пусть клиент = новый ElasticClient (конфигурации) пусть результат = client.Search (новый SearchRequest ()) открытая система с открытым Nest открытого Elasticsearch.Net открытого типа Elasticsearch.Net.Aws Payload = {широта: двойная; долгота: двойная} типа телеметрическая = {полезная нагрузка: полезная нагрузка} пусть credentialsProvider = новые AwsCredentials (AccessKey = "мой Accesskey", SecretKey = "мой SecretKey") пусть staticCredentialsProvider = новый StaticCredentialsProvider (credentialsProvider) пусть HttpConnection = новый AwsHttpConnection ( "ар-юго-восток -2" , staticCredentialsProvider) пусть бассейн = новый SingleNodeConnectionPool (новый Uri ( "https://search-MY_INDEX-SOME_ID.ap-southeast-2.es.amazonaws.com")) пусть конфигурационные = новые ConnectionSettings (пул, HttpConnection) config.DefaultIndex ( "MY_INDEX") |> игнорировать пусть клиент = новый ElasticClient (конфигурации) пусть результат = client.Search (новый SearchRequest ()) Аус тип полезной нагрузки = {широта: двойной; долгота: двойная} типа телеметрическая = {полезная нагрузка: полезная нагрузка} пусть credentialsProvider = новые AwsCredentials (AccessKey = "мой Accesskey", SecretKey = "мой SecretKey") пусть staticCredentialsProvider = новый StaticCredentialsProvider (credentialsProvider) пусть HttpConnection = новый AwsHttpConnection ( "ар-юго-восток -2" , staticCredentialsProvider) пусть бассейн = новый SingleNodeConnectionPool (новый Uri ( "https://search-MY_INDEX-SOME_ID.ap-southeast-2.es.amazonaws.com")) пусть конфигурационные = новые ConnectionSettings (пул, HttpConnection) config.DefaultIndex ( "MY_INDEX") |> игнорировать пусть клиент = новый ElasticClient (конфигурации) пусть результат = client.Search (новый SearchRequest ()) Аус тип полезной нагрузки = {широта: двойной; долгота: двойная} типа телеметрическая = {полезная нагрузка: полезная нагрузка} пусть credentialsProvider = новые AwsCredentials (AccessKey = "мой Accesskey", SecretKey = "мой SecretKey") пусть staticCredentialsProvider = новый StaticCredentialsProvider (credentialsProvider) пусть HttpConnection = новый AwsHttpConnection ( "ар-юго-восток -2" , staticCredentialsProvider) пусть бассейн = новый SingleNodeConnectionPool (новый Uri ( "https://search-MY_INDEX-SOME_ID.ap-southeast-2.es.amazonaws.com")) пусть конфигурационные = новые ConnectionSettings (пул, HttpConnection) config.DefaultIndex ( "MY_INDEX") |> игнорировать пусть клиент = новый ElasticClient (конфигурации) пусть результат = client.Search (новый SearchRequest ())
P_O
1

голосов
0

ответ
63

Просмотры

SIMD векторы - Комплексные числа?

Я хотел использовать пространство имен System.Numerics.Vector в .NET Ядра, но я столкнулся с вопросом о так как нет никакой поддержки для векторов комплексных чисел. Как можно заметить, вектор типа будет работать с любым примитивным типом, от байта в два раз. Я не программист по профессии, так что я могу не знать о каком-то низкий уровне / концептуального материале, но есть причина, почему не поддержка комплексных чисел? Насколько я могу видеть, пожалуй, единственный вопрос, будет то, что комплекс типа является управляемой структурой. Могу ли я не только расширить тип Регистра включить [FieldOffset (0)] внутренний комплекс complex_0 и строить новые функции вокруг этого? Я готов работать на расширение типа сам, но хотел бы спросить, если есть какая-то причина, почему это не было включено в первую очередь,
normal chemist
1

голосов
0

ответ
160

Просмотры

Что случилось с теми слеша питона ф-строковых выражений?

Я пытаюсь обернуть мою голову вокруг «нет слеша ф-строковых выражений» вещи (также см отчета об ошибке Когда в питоне сессии мы не можем использовать обратные косые черту в выражении части ф-строке:. >>> а = 1 >>> е «{а \ ... + 1}» Файл «», строка 2 SyntaxError: е-нить выражение часть не может включать в себя обратный слэш Когда я внутри сеанса IPython, с другой стороны, все работает нормально (попробуйте на это, например, здесь): В работе [1]: а = 1 В работе [2]: е '{а \ ...: + 1}' Out [2]: '2' Я не вижу, что этот вопрос с обратной косой черты в Python являются: если это, кажется, не беспокоит IPython, почему это беспокоит переводчик?
mrclng
1

голосов
1

ответ
93

Просмотры

Calling F# function with a button from WPF (FsXaml approach)

Я пытаюсь сделать кнопку Hello World приложение с F #, WPF и FsXaml. Я начал после этого руководства: https://www.c-sharpcorner.com/article/create-wpf-application-with-f-sharp-and-fsxaml/ Все отлично работает, когда я просто загрузить вещи на XAML и компиляции, но Я не удалось вызвать функцию, нажав на кнопку, и руководство заканчивается прежде, чем он объясняет, как вызывать функции. Я видел много различного рода подходов вокруг, но ничего не работает для меня пока (и многие из гидов лет так много произошло в рамках так). Было бы здорово иметь работу (и простой) отправную точку, на которой я мог бы начать строить, как только я понять логику между x.xaml и x.xaml.fs при использовании FsXaml. Моя кнопка на MainWindow.xaml: Также у меня есть это в окне -сечения MainWindow.xaml: Xmlns: локальный =» CLR-имена: Просмотры; сборка = GUItemplate»Мой MainWindow.xaml.fs: Пространство имен GUItemplate открыта FsXaml открытых System.Windows напечатайте MainWindowBase = типа XAML MainWindow () = унаследовать MainWindowBase () замещает this.submitButton_Click (Sender: OBJ, E: RoutedEventArgs ) = MessageBox.Show ( "Привет, мир!") |> игнорировать Я получаю ошибку в данный момент: ' 'System.Windows.Markup.XamlParseException HResult = 0x80131501 Message =' Не удалось создать 'Клик' из текста' submitButton_Click Номер строки «29» и положение линии «101» Источник = PresentationFramework Внутренний Исключение 1:. ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. Пространство имен GUItemplate открытой FsXaml открытого System.Windows типа MainWindowBase = XAML типа MainWindow () = унаследовать MainWindowBase () замещает this.submitButton_Click (отправитель: OBJ, е: RoutedEventArgs) = MessageBox.Show |> игнорировать ошибку ( "Привет, мир!") Я получаю в настоящее время: «„System.Windows.Markup.XamlParseException HResult = 0x80131501 Message =“Не удалось создать„Клик“из текста» submitButton_Click Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. Пространство имен GUItemplate открытой FsXaml открытого System.Windows типа MainWindowBase = XAML типа MainWindow () = унаследовать MainWindowBase () замещает this.submitButton_Click (отправитель: OBJ, е: RoutedEventArgs) = MessageBox.Show |> игнорировать ошибку ( "Привет, мир!") Я получаю в настоящее время: «„System.Windows.Markup.XamlParseException HResult = 0x80131501 Message =“Не удалось создать„Клик“из текста» submitButton_Click Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. Тип ОС Windows MainWindowBase = тип XAML MainWindow () = унаследовать MainWindowBase () замещают this.submitButton_Click (отправитель: OBJ, е: RoutedEventArgs) = MessageBox.Show ( "Hello World!") |> игнорировать Я получаю ошибку в данный момент: System.Windows .Markup.XamlParseException HResult = 0x80131501 Message = "Не удалось создать„Клик“из текста„submitButton_Click“. Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. Тип ОС Windows MainWindowBase = тип XAML MainWindow () = унаследовать MainWindowBase () замещают this.submitButton_Click (отправитель: OBJ, е: RoutedEventArgs) = MessageBox.Show ( "Hello World!") |> игнорировать Я получаю ошибку в данный момент: System.Windows .Markup.XamlParseException HResult = 0x80131501 Message = "Не удалось создать„Клик“из текста„submitButton_Click“. Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. XamlParseException HResult = 0x80131501 Message = "Не удалось создать„Клик“из текста„submitButton_Click“. Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата. XamlParseException HResult = 0x80131501 Message = "Не удалось создать„Клик“из текста„submitButton_Click“. Номер строки «29» и положение линии «101». Источник = PresentationFramework Внутренний Исключение 1: ArgumentException: Невозможно привязать к целевому методу, потому что его подпись или прозрачность безопасности не совместима с типом делегата.
A. Soikkeli
1

голосов
0

ответ
71

Просмотры

Ручка состояния с функциями FP / F # пути

Вот некоторые интерфейсы IOrderSender, который определяет бизнес-операции (порядок отправки) с некоторой реализацией KafkaOrderSender (через производитель Кафки в этом примере). Код был переписан C # с сохранением оригинальной ООП-стиль: тип CUSTOMERID = тип строки IOrderSender = абстрактные SendOrders: CustomerId -> Список для заказа -> блочных KafkaOrderSender (конфиг: наследует IConfiguration) = пусть streamConfig = config.GetSection ( "OrderStream" ) пусть producerConfig = новый ProducerConfig (BootstrapServers = streamConfig.GetValue ( "BootstrapServers")) пусть производитель = новый производитель (producerConfig) пусть ordersTopic: интерфейс строка = streamConfig.GetValue ( "тема") IOrderSender с членом этого. AddSingleton () |> игнорировать этот объект затем решены с помощью DI и используется в логике приложения: позволить handleOrders (CUSTOMERID: CUSTOMERID) (: приказы): HttpHandler = забава (следующая: HttpFunc) (CTX: HttpContext) -> // Решимости позволить orderSender = ctx.GetService () // Использовать ли возвращать orderSender.SendOrders CUSTOMERID заказы! текст «OK» в следующем CTX Есть ли лучший способ я реализовать IOrderSender в более идиоматических функционально (модуль вместо класса, частичное применение вместо зависимостей с помощью конструктора)? Как обращаться с общегосударственным (продюсером) и как осуществить утилизацию общего состояния в этом случае? HttpFunc) (CTX: HttpContext) -> // Resolve пусть orderSender = ctx.GetService () // Использование делать возврата orderSender.SendOrders CUSTOMERID заказов! текст «OK» в следующем CTX Есть ли лучший способ я реализовать IOrderSender в более идиоматических функционально (модуль вместо класса, частичное применение вместо зависимостей с помощью конструктора)? Как обращаться с общегосударственным (продюсером) и как осуществить утилизацию общего состояния в этом случае? HttpFunc) (CTX: HttpContext) -> // Resolve пусть orderSender = ctx.GetService () // Использование делать возврата orderSender.SendOrders CUSTOMERID заказов! текст «OK» в следующем CTX Есть ли лучший способ я реализовать IOrderSender в более идиоматических функционально (модуль вместо класса, частичное применение вместо зависимостей с помощью конструктора)? Как обращаться с общегосударственным (продюсером) и как осуществить утилизацию общего состояния в этом случае? частичное применение вместо зависимостей с помощью конструктора)? Как обращаться с общегосударственным (продюсером) и как осуществить утилизацию общего состояния в этом случае? частичное применение вместо зависимостей с помощью конструктора)? Как обращаться с общегосударственным (продюсером) и как осуществить утилизацию общего состояния в этом случае?
Sergey Kostrukov
1

голосов
0

ответ
71

Просмотры

F # внутренняя видимость изменения записи поведения конструктора

Я caling к API с помощью Flurl. // # models.fs модуль модель = тип Ticker = {ASK: десятичный; Ставка: десятичное; Последнее: десятичное; Высокая: десятичное; Отметка: INT; } // # Client.fs имен MyLibrary // ... некоторый код url.GetJsonAsync () Это работает, и я могу получить доступ к свойству ticker.Ask. Класс models.Ticker виден из другого проекта C # и construcor это: общественный Ticker (десятичный спросить, десятичный ставок, десятичная последняя десятичная высокое, внутр метки времени); Я не хочу подвергать модуль модели и Ticker класс / запись, поэтому я изменил видимость к внутреннему: # models.fs модуль внутренним модели = тип Ticker = {ASK: десятичной; Ставка: десятичное; Последнее: десятичное; Высокая: десятичное; Отметка: INT; } Этот код по-прежнему «компиляции», но когда я запускаю его у меня есть это исключение: Newtonsoft.Json.JsonSerializationException: Не удалось найти конструктор использовать для типа MyProject.models + Ticker. Класс должен либо иметь конструктор по умолчанию, один конструктор с аргументами или конструктор, помеченный атрибутом JsonConstructor. Путь 'высокий', строка 1, позиция 8. на Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject (JsonReader читателя, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, строковый идентификатор, булевой & createdFromNonDefaultCreator) в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (JsonReader читатель, тип ObjectType, JsonContract контракт, член JsonProperty, JsonContainerContract containerContract, JsonProperty containerMember, объект existingValue) в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (JsonReader читателя, тип ObjectType, GetAsk = пусть тикер = getTicker (). Результат ticker.Ask Я использую клиент из C # проекта. Я полагаю, конструктор Ticker изменен из-за видимости. Но почему? Как я могу сохранить класс Ticker скрытый и сделать код работает, как ожидалось? [Update: использовать класс] Использование типа класса внутреннего Ticker (задать вопрос: десятичная, ставка: десятичный, последние: десятичный, высокие: десятичный, метки времени: Int) = член this.Ask = спросить делает работу, как и ожидались. Если внутренний не видно снаружи, но это «полезная» по JsonDeserializer. Я до сих пор путают за поведение, когда я использую запись. Зачем? Как я могу сохранить класс Ticker скрытый и сделать код работает, как ожидалось? [Update: использовать класс] Использование типа класса внутреннего Ticker (задать вопрос: десятичная, ставка: десятичный, последние: десятичный, высокие: десятичный, метки времени: Int) = член this.Ask = спросить делает работу, как и ожидались. Если внутренний не видно снаружи, но это «полезная» по JsonDeserializer. Я до сих пор путают за поведение, когда я использую запись. Зачем? Как я могу сохранить класс Ticker скрытый и сделать код работает, как ожидалось? [Update: использовать класс] Использование типа класса внутреннего Ticker (задать вопрос: десятичная, ставка: десятичный, последние: десятичный, высокие: десятичный, метки времени: Int) = член this.Ask = спросить делает работу, как и ожидались. Если внутренний не видно снаружи, но это «полезная» по JsonDeserializer. Я до сих пор путают за поведение, когда я использую запись.
Alex 75
1

голосов
0

ответ
61

Просмотры

Alea.CUDA. Миграция с v2 для v3.0

Есть ли руководство по миграции из Alea.CUDA v2 в Alea.CUDA v3? Мы используем пакеты Alea.CUDA.Fody и Alea.CUDA.Unbound из NuGet, и следующие пространства имен: Alea.CUDA.Utilities.Array2D, Alea.CUDA, Alea.CUDA.CULib, Alea.CUDA.Utilities, Alea.CUDA.IL , Теперь мы хотим перейти на v3 (потому что v2 не доступен на NuGet). Какие пакеты и какие пространства имен мы должны использовать?
gsv
1

голосов
2

ответ
59

Просмотры

ResizeArray Instance in property

Я стараюсь, чтобы преобразовать C # код F # Items = новый список {новый пункт {Product = "", Категория = "", Количество = 1, Detail = "", цена = 220}} Выполните код F #: пусть элементы = ResizeArray () items.Add (пункт (Product = "", Категория = "", Количество = 1, Detail = "", цена = 220)) пусть тело = OrderRequest (Items = элементы) Как я могу создать экземпляр непосредственно в свойстве Items? Без создания новой переменной, а затем сделать надстройку (). Равные первый C # код. Я попытался это таким образом, и он не работает: пусть тело = OrderRequest (Items = ResizeArray (пункт (Product = «», Категория = «», Количество = 1, Detail = "", цена = 220))) Я получаю сообщение об ошибке: Ошибка FS0193 Возможные накладные расходы: 'Generic.List (сборник: Generic.IEnumerable): ResizeArray'. Несовместимые ограничения типа. Тип «Item» не совместим с типом «Generic.IEnumerable»
Matheus Miranda
1

голосов
1

ответ
87

Просмотры

How do I make a F# SQLProvider source file (.fs)?

MY F# SQLProvider code that works in a script file, fails when copied into a source file. Specifically, it seems like there is no communication with the server because the intellisense that allows me to see available tables, columns, etc. in the .fsx file; doesn't work in the .fs file. I have the FSharp.Data.SqlProvider referenced in my solution, and opened in the code block, but the properties for the GetDataContext() method are MIA. The project references FSharp Core 4.6.0. module DBaseTest open FSharp.Data.Sql let [] connectionString = "Data Source=####;Initial Catalog=####;etc.;etc." type sql = SqlDataProvider< DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER, CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL, ConnectionString = connectionString, IndividualsAmount = 1000, UseOptionTypes = true> let tables = sql.GetDataContext().Dbo let table = sql.GetDataContext().Dbo //property Dbo not found let testQuery = query{ for rows in table.Organization do where (rows.OrgName = "ASME") select rows } |> Seq.toArray let firstRow = testQuery.[0].PressureLabel [] let main argv = printfn "%A" firstRow Console.Read() |> ignore 0
J. Hopkins
1

голосов
0

ответ
29

Просмотры

NUnit3 не может найти F # тест при применении с атрибутом RunInApplicationDomain

Я использую VS2017 с 3.12.0 адаптер Тест NUnit и NuGet NUnit 3.10.1 рамки:> = net45 NuGet NUnit.ApplicationDomain 11.1.0 NuGet NUnit.Runners 3.9.0 Я хочу, чтобы запустить каждый тест в отдельной области, но при применении [ RunInApplicationDomain] приписывать тест, тест не может быть найден в VS Test Explorer. Удаление атрибута, то он может быть найден. Есть обходной путь? Например, тест ниже, не может быть найден. Пространство имен Foo открыта NUnit.ApplicationDomain открыта NUnit.Framework [] ThreeNodeTests типа () = [] __ член. Тест1 () = Assert.Pass ()
stt106
1

голосов
0

ответ
41

Просмотры

Добавление содержимого файлов с помощью F # NuGet пакета строителя

Я пытаюсь добавить только один DLL в папку вывода любого проекта, который использует мой пакет NuGet. Я использовал F #, чтобы построить его, и закончились идеи о том, как заставить его работать. F # код для строительства: NuGet (весело р -> {р с авторами = [ "Delsys"] Ссылки = [ "DelsysAPI.dll"] Project = Projectname Описание = ProjectDescription OutputPath = artifactsNuGetDir Резюме = projectSummary WorkingDir = packagingDir Version = версия Files = [(@ "** / SiUSBXp.dll", некоторые @ "Lib", некоторые @ "")]}) "DelsysAPI.nuspec" Библиотеки DLL SiUSBXp присутствует в моем пакете NuGet, но не копируется в выходной папку, когда я включаю и построить с этим пакетом NuGet. Любая помощь или идеи было бы здорово. Изменить: Я сделал некоторый прогресс с этим вопросом. Я не уверен, если я должен открыть новую тему, но в основном F # NuGet создатель считает моя корневая папка проекта является диском C, когда я добавить этот файл в качестве содержимого файла. Запуск сборки не удалось. Ошибка: System.IO.DirectoryNotFoundException: Не удалось найти часть пути 'C: \ DelsysAPI \ Bin \ Release'. на System.IO .__ Error.WinIOError (Int32 ERRORCODE, String maybeFullPath) в System.IO.FileSystemEnumerableIterator`1.CommonInit () в System.IO.FileSystemEnumerableIterator`1..ctor (путь String, String originalUserPath, струнного searchPattern, SearchOption searchOption , SearchResultHandler`1 ResultHandler, булева checkHost) при System.IO.Directory.GetFiles (String путь, строка searchPattern, searchOption searchOption) в [email protected]
slacker
1

голосов
0

ответ
55

Просмотры

Странное поведение в рекурсивном F # функции

Я пытаюсь наивный рекурсивную функцию в F #: пусть съемка Эскорт факт п =, если п> 0, то п * факт (п - 1) еще 1 Для малых аргументах, он отлично работает, однако, если вы передаете достаточно большое число, то терпит неудачу странным образом:> 41 факт ;; Вэл это: INT = 0> Факт 25 ;; вал это: ИНТ = 2076180480> Факт 26 ;; вал это: ИНТ = -1853882368 Я предполагаю, что какое-то переполнение происходит, но я не должен получить ошибку ???
nbneo
1

голосов
0

ответ
32

Просмотры

Невозможно правильно прокси С # тип для клиентского кода в приложении F # WebSharper

Я испытываю проблемы при потреблении определенного C # типа в # веб-приложение F. Следующий C # типа присутствует в библиотеке Я ссылаюсь в моем F # приложении: общественный статический класс OuterType {общественного класса Model {частной чтения строки идентификатор; частное чтение BOOL выбрано; частное имя строки; внутренняя модель (): это (string.Empty) {} публичная модель (строка ID): это (идентификатор, ложь) {} публичная модель (строка идентификатор, BOOL выбран) {this.id = имя = ID; this.selected = выбран; } [Локализуемый (ложь)] общественный строковый идентификатор => ID; общественный BOOL Selected => выбран; [Localizable (истина)] публичная строка Name {прибудет => имя; комплект => имя = значение; }}} Я написал прокси для него (как часть моего F # веб-приложение): [] тип ProxyModel = {ID: строка отмеченными: BOOL Имя: строка} Мой проект компилируется нормально, но я получаю сообщение об ошибке во время выполнения сериализации: System.Exception: Ошибка при преобразовании RPC JSON ---> System.Exception: Не удалось найти переведенный имя поля для идентификатора в типе OuterType + модели с полями: имя, выбранное, Id Это привело меня к мысли, преобразователь стремится соответствовать тип именами полей. Так что я изменил мой прокси-сервер следующим образом: [] Тип ProxyModel = {ID: строка выбран: имя Его: строка} Вышеприведенные приводит к ошибке компиляции: WebSharper ошибка FS9001: Не удалась найти поле F # Типа записи: OuterType.Model.Selected WebSharper FS9001 ошибка: не удалось найти поле F # тип записи: OuterType.Model.Name и я застрял. Что мне не хватает? Обновление: Приложение нацеливание netcoreapp2.1. Он использует следующие зависимости WebSharper (выдержка из моего paket.lock): WebSharper (4.5.9.330) WebSharper.AspNetCore (4.5.3.104) WebSharper.FSharp (4.5.9.330) WebSharper.Html (4.5.1.153) WebSharper.Reactive (4,5 .1.139) WebSharper.UI (4.5.8.161)
Ivaylo Slavov
1

голосов
2

ответ
67

Просмотры

F # Array2D - Извлечение Диагонали

Скажем, у меня есть матрица [[0; 0; 1; 0; 0; 0] [0; 1; 0; 0; 0; 0] [2; 0; 0; 0; 0; 0] [0; 1; 0; 0; 0; 0] [0; 0; 1; 0; 0; 0] [0; 0; 0; 1; 0; 0]] Я хочу, чтобы извлечь диагонали как означающий 1d массива [| 2; 1; 1 |] и [| 2; 1; 1;. 1 |] Для строк и столбцов, то есть матрица [я *] / / -й строки матрицы. [*, я] // й столбец Можно ли построить что-то подобное для Ith диагоналей в направлении вверх и вниз?
Nulle
1

голосов
0

ответ
57

Просмотры

Последствия эффективности использования нескольких провайдеров # типа F сразу

В моем проекте, я в настоящее время с помощью SqlCommandProvider для простых случаев SQL и SqlDataConnection с FSharpComposableQuery для более сложных динамических запросов SQL. Будет ли этот результат в дополнительных накладных расходов, в отличие от использования только один поставщика типа для SQL?
FPguy
1

голосов
0

ответ
24

Просмотры

Не удалось разобрать (?) Десятичных знаков с FSharpValue.MakeRecord только в IOS устройства с региональной испанской / Колумбия

Эта ошибка не произошло на Android, IOS эмуляторе, OSX, Linux. Только на IOS устройство, когда оно есть область, отличная от США / английского языка. Я с помощью отражения для значений декодирования JSON, и именно в FSharpValue.MakeRecord данные десятичных дробей получить подогнаны. Репрографии шагов Создать приложение Single View IOS и заполнить его: тест имен открытой системы с открытым UIKit открыто Foundation типа открытой Microsoft.FSharp.Reflection DocumentRow = {doc_id: int32 doc_kind: струнный doc_code: строки customer_code: строки from_code: струнным вариантом имя пользователя: строка createdat: DateTime updatedat: DateTime dueat: DateTime варианта подписи: вариант строки права: вариант строки delivery_order: цена int32: десятичная стоимость: десятичное tax_value: десятичное discount_value: десятичное sub_total: десятичное всего: десятичное статус: строка примечание: Запуск на устройстве IOS. У меня есть использовать iPhone 6 SE, но воспроизводят во многих других. Она печать: {doc_id = 1; doc_kind = "О"; doc_code = "Д-3-1"; customer_code = "70084254_32"; не from_code = Нет; имя пользователя = «админ»; createdat = 28/02/2019 6:04:12 вечера; updatedat = 28/02/2019 6:04:12 вечера; не dueat = Нет; нет подписи = Нет; не разрешено = Нет; delivery_order = 0; цена = 12912720851596686131200M; Стоимость = 0M; tax_value = 0M; discount_value = 0M; sub_total = 64563604257983430656000M; всего = 64564290437145643974656M; статус = «Проект»; Примечания = нет; не syncdata = Нет; версия = 0;} Посмотрите, как все десятичные значения получают искаженное. Информация, связанная с IOS 12.1.4 Visual Studio Community 2017 для Mac Mono 5.16.0.221 (2018-06 / b63e5378e38) (64-разрядная версия) PD: Сообщил в https: // GitHub.
mamcx
1

голосов
0

ответ
56

Просмотры

F # Проблема Загрузка сборки: «Не удалось загрузить один или несколько запрошенных типов»

Я новичок в F # и Visual Studio, и я бегу в стену, пытаясь понять, что вопрос здесь. Я пытаюсь использовать SqlDataProvider. Мой код: модуль HelloSquare открытая система с открытым FSharp.Data.Sql пусть квадрат х = х * х типа PortalProd = SqlDataProvider <Common.DatabaseProviderTypes.MYSQL, "Server = локальный; Database = тест, инструкция = тест; Пароль = тест;", UseOptionTypes = истина> [] пусть главный ARGV = пусть тест = 12312 printfn "% d в квадрате:% d" 12 (квадрат 12) 0 // Возвращает целочисленный код выхода Ошибки я получаю: FS3033 Ошибки: типа поставщик «FSharp.Data.Sql.SqlTypeProvider» сообщил об ошибке: Не удается загрузить один или несколько запрошенного types.Could не загрузить файл или сборку «Google.Protobuf, Version = 3.5.1.0, культура = нейтральной, PublicKeyToken = APublicKey. Я добавил Protobuf с помощью NuGet, но ошибка сохраняется. Надеюсь, что это что-то простое, но я мог бы использовать некоторую помощь. MacOS High Sierra 10.13.6 Visual Studio Community 2019 для Mac версии 8.0.1 (сборка 1)
MBeale
1

голосов
1

ответ
136

Просмотры

Как изменить F # связанные цвета в VS 2010

Я знаю о Options-> Шрифты и цвета. Но нет никакой возможности для F строка # (я хочу, чтобы изменить цвет, чтобы они выглядели так же, как в C # строка)! А может быть кто-то знает о планах Microsoft на F # редактора (рефакторинга и т.д.)?
Ilya Khaprov
1

голосов
2

ответ
187

Просмотры

Get Physical Расположение типов актового

Может показаться, что подобный вопрос к местам GetReferencedAssembly, но мой вопрос получает физическое расположение типов в этих referencedAssemblies. Могу ли я получить информацию из PDB? Или я могу использовать Сесил? В конечном счете моя цель поиск ключевого слова для указанного узла, и список всех файлов [.cs / .fs / .vb], который использует это ключевое слово.
demokritos
1

голосов
2

ответ
174

Просмотры

Не удается получить F # FSI для выполнения кода в Visual Studio 2008

Очень новый для F #. Установленная F # 2.0, создал F # приложение, с каким-то простым кодом, скомпилировал его и он работает отлично. Если я некоторое F поставьте отметку # код в VS 2008 и нажмите Alt + Enter (что каждая страница говорит делать), чтобы заставить его работать в интерактивном режиме, то ничего не происходит. Любые идеи, почему это ярлык сломан? Есть еще один способ круглых обжигающе подсвеченный код на FSI? Спасибо
bytedev
1

голосов
1

ответ
951

Просмотры

Использование определенного пользователем типа

Я определение аа типа представляет собой доску моего игры: Тип установки = (INT * шт) список Но когда я создаю список вроде этого: пусть совет1 = [(1, Piece.BLACK); (2, Piece.WHITE ); (3, Piece.BLACK); (4, Piece.WHITE); ...] создать список (ИНТ * шт) список, а не позиции. Как я могу изменить это? Какой правильный путь? Например: Вэл совет1: список (интермедиат * шт) = [(1, черный); (2, белый); (3, черный); (4, белый);
Pedro Dusso

Просмотр дополнительных вопросов