Результаты поиска по запросу "f#"

11 ответов

 абстрагирование валидации в Scala, F # и C #, которая в данный момент застряла в очереди модератора. Сравните отвратительную версию кода на C #. И причина в том, что C # не обобщен. Я интуитивно ожидаю, что шаблон для конкретного случая C # будет взорваться геометрически по мере роста программы.

граммист Scala, сейчас изучаю Haskell. Легко найти примеры практического использования и примеры из реальной жизни для концепций ОО, таких как декораторы, шаблоны стратегий и т. Д. Эти книги заполнены. Я пришел к выводу, что это как-то не так ...

2 ответа

Пример кода, который вы опубликовали, не совсем хороший, потому что в этом нет необходимости во взаимоотношениях - вы можете изменить порядок. (Если не было еще нескольких типов, определенных ниже, которые зависели от вышеупомянутого).

ня я столкнулся со следующими декларациями DU: type Grammar = Definition list and Definition = Def of string * Expression and Range = | Char of char | Range of char * charЗачем использовать ключевое словоand вместоtype, Вот?

5 ответов

Так что это не является хвостовой рекурсивной безопасностью в F #, но делает мой ответ ответом и избегает List.rev (это уродливо иметь доступ к двум элементам кортежа и было бы более подходящим, чем подход cps в противном случае, я думаю , как если бы мы только вернули первый список):

исал эту функцию F #, чтобы разделить список до определенной точки и не дальше - очень похоже на нечто среднее междуtakeWhile а такжеpartition. let partitionWhile c l = let rec aux accl accr = match accr with | [] -> (accl, []) | h::t -> if c h ...

ТОП публикаций

5 ответов

Вы сказали, что «переданная функция может работать с этими типами», тогда параметром функции должен быть либо базовый класс, либо объект, либо какой-то интерфейс, который реализует оба типа в кортеже

ли причина, по которой я могу использовать универсальную функцию с аргументами другого типа, когда я передаю ее как локальное значение, а не как параметр? Например: let f = id let g (x,y) = (f x, f y) g ( 1, '2')работает нормально, но если ...

5 ответов

Каким образом в функциональном программировании достигается неразрушающее манипулирование коллекциями с эффективным использованием памяти?

Я пытаюсь понять, как неразрушающее манипулирование большими коллекциями реализуется в функциональном программировании, т.е. как можно изменять или удалять отдельные элементы, не создавая совершенно новую коллекцию, в которой все элементы, даже ...

28 ответов

Почему понизить? Что не так в моем ответе?

озникло во время разговора с другом, и я подумал спросить здесь, потому что это интересная проблема и хотел бы увидеть решения других людей. Задача состоит в том, чтобы написать функцию Brackets (int n), которая печатает все комбинациихорошо ...

1 ответ

Как мне работать с IEnumerable в F #?

Существует довольно много устаревших интерфейсов, которые получают коллекции сущностей в форме простогоIEnumerable, Обычно можно сделатьforeach(CertainTypeWeSureItemIs item in items) в C # приведение объектов к любому типу, который они хотят, как ...

2 ответа

Поставщик типа F # - «возвращать только сгенерированные типы»

Попытка закодировать числа peano уровня типа с помощью провайдера типов: namespace TypeProviderPlayground open System open Microsoft.FSharp.Core.CompilerServices open System.Runtime.CompilerServices [<assembly: TypeProviderAssembly()>] do() type ...

9 ответов

Объяснение сопоставления с моделью

Я пытался объяснить разницу между утверждениями переключателя и сопоставлением с образцом (F #) нескольким людям, но я действительно не смог объяснить это хорошо ... большую часть времени они просто смотрят на меня и говорят "так почему не просто ...

10 ответов

Самый идиоматичный способ написания пакетов размера seq в F #

Я пытаюсь выучить F #, переписав некоторые алгоритмы C #, которые у меня есть, в идиоматический F #. Одной из первых функций, которые я пытаюсь переписать, является пакет, где: [1..17] |> batchesOf 5Который разделил бы последовательность на ...