Результаты поиска по запросу "f#"
Большое спасибо за просмотр этого Томаса. Однако, как говорит kvb, это вызывает немного больше вопросов, чем ответов. В частности, есть ли что-то в выражениях вычислений, из-за которых компилятор теряет "хвостовую рекурсивность" функций, написанных с использованием bind, если bind не записан в стиле передачи продолжения? Значит ли это, что любой построитель вычислений в реальном мире должен проходить мимо?
ытие: это появилось в FsCheck, среде случайного тестирования F #, которую я поддерживаю. У меня есть решение, но оно мне не нравится. Более того, я не понимаю проблемы - ее просто обошли. Довольно стандартная реализация последовательности ...
Могу ли я использовать разные рабочие процессы одновременно в F #?
Мне нужно, чтобы мое состояние передавалось вместе с возможностью цепочки функций, возможно, с рабочим процессом. Есть ли способ для двух рабочих процессов использовать один и тот же контекст? Если нет, как это сделать? ОБНОВИТЬ: Ну, у меня ...
К счастью, издержки, связанные с синтаксисом выражений вычислений, обычно незначительны для наиболее важного применения выражений вычислений в F #: асинхронных выражениях. (Выражения seq являются особым случаем, поскольку компилятор F # компилирует их в конечные автоматы.)
ил проверить FParsec и попытался написать парсер для λ-выражений. Оказывается, рвение затрудняет рекурсивный анализ. Как я могу решить это? Код: open FParsec type λExpr = | Variable of char | Application of λExpr * λExpr | Lambda of char * ...
, Но простота использования велика, и, поскольку моему приложению не нужна максимальная производительность, оно работает достаточно хорошо для меня. Хотя, поскольку это библиотека, если кто-то знает, как ее улучшить, всегда приятно делать из библиотеки лучшие исполнители из коробки, чтобы остальные могли просто использовать работающий код и просто выполнить свою работу!
аюсь загрузить более 3000 фотографий, на которые есть ссылки из резервной копии xml моего блога. Проблема, с которой я столкнулся, заключается в том, что если только одна из этих фотографий больше не доступна, вся асинхронность блокируется, ...
Пожалуйста, посмотрите на предлагаемые ссылки в комментариях. Я надеюсь, что они помогут вам.
жен сделать проекцию списка списков, который возвращает все комбинации с каждым элементом из каждого списка. Например: projection([[1]; [2; 3]]) = [[1; 2]; [1; 3]]. projection([[1]; [2; 3]; [4; 5]]) = [[1; 2; 4]; [1; 2; 5]; [1; 3; 4]; [1; 3; ...
Я предполагаю, что в производстве FSharp.Core больше оптимизаций, чем '% s'.
просто удивлен тем, насколько медленным является printf из F #. У меня есть несколько программ на C #, которые обрабатывают большие файлы данных и записывают несколько файлов CSV. Я изначально начал с использованиемfprintf writer ...
К сожалению, приведенный выше код больше не компилируется в F # 3.0: активный шаблон '| Option | _ |' имеет тип результата, содержащий переменные типа, которые не определены входными данными. Распространенной причиной является случай, когда результат не упоминается, например, 'let (| A | B |) (x: int) = A x'. Это можно исправить с помощью ограничения типа, например, 'let (| A | B |) (x: int): Choice <int, unit> = A x'
я есть функция, которая принимает параметр типа объекта и должен уменьшить его доoption<obj>. member s.Bind(x : obj, rest) = let x = x :?> Option<obj>Если я прохожу (например)Option<string> какxпоследняя строка выдает ...
@Brian: Почему мы не можем писать inline IL? Это не ошибка; это особенность. :-)
ько что узнал, что OCAML должен иметь. постфикс для выполнения арифметики с плавающей точкой. Примером будет3. +. 4. который равен7. (С плавающей точкой). Однако F # обрабатывает арифметику с плавающей точкой и целочисленную одинаково, поэтому ...
Необязательный параметр - это синтаксис, который удобен для пользователей библиотеки, но не для авторов библиотеки. Вы стоите на точке зрения авторов библиотеки, чтобы судить об этой функции. Чем динамичнее интерфейс, тем больше проверок в базовой реализации.
отрим следующий код: type Test () = member o.fn1 (?bo) = 1 member o.fn2 (?bo) = o.fn1 bo member o.fn3 (?bo) = 1 + bo.Value member o.fn4 (?bo) = o.fn3 boПокаfn1 а такжеfn2 работать просто отлично,fn4 выдает следующую ошибку: init.fsx (6,30): ...
Ваш значительно быстрее (и вызывает меньше GC). Смотрит мне, что у тебя хорошо.
е ли вы предложить более простой и понятный способ написания этой функции? let cartesian_product sequences = let step acc sequence = seq { for x in acc do for y in sequence do yield Seq.append x [y] } Seq.fold step (Seq.singleton Seq.empty) ...