Описание тега guard-clause
В определениях функций с помощью предложений с сопоставлением с образцом охранники - это логические выражения, которые дополняют сопоставление с образцом возможностью пропустить образец, даже если структура аргумента соответствует образцу.
2
ответа
Неполное сопоставление с шаблоном, когда два шаблона используют предложение `when`
Обычным сюрпризом для начинающих программистов на F# является тот факт, что следующее является неполным совпадением: let x, y = 5, 10 match something with | _ when x < y -> "Less than" | _ when x = y -> "Equal" | _ when x > y -> "Gre…
17 апр '17 в 16:21
5
ответов
Ближайший C# эквивалент выражения F#?
Я нахожусь в ситуации, когда многие мои классы представляют собой контейнеры с хорошо известными, но неупорядоченными объектами разных типов, например, контейнер может выглядеть следующим образом: public class Container { public A A { get; private s…
02 окт '09 в 12:13
4
ответа
Сопоставление с шаблоном с защитой против конструкции if/else в F#
В языках семейства ML люди предпочитают if/else построить. В F# использование защит в рамках сопоставления с образцом может легко заменить if/else во многих случаях. Например, простой delete1 функция может быть переписана без использования if/else (…
02 ноя '11 в 20:04
3
ответа
Матч с пустой последовательностью
Я изучаю F#, и я начал играть с обеими последовательностями и match выражения. Я пишу веб-скребок, который просматривает HTML, похожий на следующий, и беру последний URL в родительском. <span> с paging учебный класс. <html> <body> …
11 авг '16 в 22:44
3
ответа
Охранные пункты в прологе?
Они существуют? Как они реализованы? Сопутствующие предикаты SWI-Пролог (freeze, when, dif и т. д.) имеют функциональность охранников. Как они вписываются в предпочтительный стиль программирования Prolog? Я очень плохо знаком с логическим программир…
07 дек '12 в 09:08
2
ответа
Образец, сочетающий тип теста и литерал
Активный шаблон в этом вопросе не удается скомпилировать после обновления до VS 2012 RTM. Он предоставляет способ выполнить проверку типа и сопоставить литерал в одном шаблоне. Например: let (|Value|_|) value = match box value with | :? 'T as x ->…
16 авг '12 в 14:28
1
ответ
Является ли хорошей практикой, чтобы угловые шаблоны проверяли переменные области видимости для "неопределенных"?
Пример: директива picture-gallery извлекает изображения и передает их в область: var galleryBootstrapData = bootstrapDataService.get('galleryBootstrapData'); $scope.galleryPictures = galleryBootstrapData.pictures; Шаблон фотогалереи визуализирует из…
03 фев '16 в 14:54
2
ответа
Пролог добавить в список, если элемент не равен строке
Я пытаюсь создать список пар, которые имеют ненулевой элемент Guard. get_only_guarded(L) :- Guard \= null, findall([S,D],transition(S,D,_,Guard,_),L). Это то, что я пытался, но это не похоже на работу. Какой будет правильный путь?
28 мар '15 в 17:23
2
ответа
vim + C++: вставить uuid в предложение guard
Я пытаюсь автоматизировать заголовки комментариев к файлам. Я застрял, пытаясь выяснить, как вставить результат uuidgen введите в мой заголовок команду auto vimd для vim. Внутри заголовка присутствует текст-заполнитель, например так: #ifndef _UUID_ …
05 май '10 в 15:10
1
ответ
F# Неполный шаблон соответствует этому выражению при использовании "когда". Почему?
У меня есть эта простая функция F#: let compareNum x = let y = 10 match x with | _ when x = y -> 0 | _ when x > y -> 1 | _ when x < y -> -1 Тем не менее, F# компилятор выдает мне предупреждение "Неполные соответствия шаблонов в этом в…
09 сен '13 в 04:47
1
ответ
Можно ли использовать охранники в определении функций в idris?
В хаскеле можно написать: containsTen::Num a => Eq a => [a] -> Bool containsTen (x : y : xs) | x + y == 10 = True | otherwise = False Можно ли написать что-то эквивалентное в Идрисе, не делая это с ifThenElse (мой реальный случай более слож…
27 июл '14 в 13:04
1
ответ
Пункты охраны и принцип единой ответственности (SRP)
В настоящее время вы читаете фантастическую книгу "Практический объектно-ориентированный дизайн в Ruby" и прорабатываете простое ката, чтобы по-настоящему попрактиковаться в некоторых обсуждаемых принципах. У меня есть метод, который делает следующе…
18 апр '16 в 10:52
2
ответа
F# функция в качестве аргумента в функции соответствия
Я сделал функцию, которая принимает список и список списков и возвращает новый список списков. let rec calculator list SS = match (List.item(0) SS) with |[] -> [] |_ -> match (validate list (List.item(0) SS)) with |(validate theCode list) ->…
15 ноя '16 в 10:05
2
ответа
Неполный шаблон, соответствующий кортежу в F#
Я определяю точку type TimeSeriesPoint<'T> = { Time : DateTimeOffset Value : 'T } и серия type TimeSeries<'T> = TimeSeriesPoint<'T> list где я предполагаю, что точки в этом списке упорядочены по времени. Я пытаюсь сжать два временн…
05 июл '12 в 23:59
2
ответа
Что делает запятая в синтаксисе guard?
В кодовой базе, которую я читаю, я нашел объявление функции, подобное этому (некоторые части отсутствуют): filepathNormalise :: BS.ByteString -> BS.ByteString filepathNormalise xs | isWindows, Just (a,xs) <- BS.uncons xs, sep a, Just (b,_) <…
01 окт '17 в 06:37
1
ответ
Является ли "охранный" метод исключения исключительной практикой?
Будет ли следующий код считаться "хорошей" практикой? Это контроллер конечной точки RPC пакета. Идея состоит в том, чтобы легко переопределить / расширить проверку или авторизацию для конкретного проекта, включающего пакет. Не могли бы вы сказать, ч…
14 фев '18 в 23:46
18
ответов
Как мне переписать очень большой составной оператор if в C#?
В моем коде C# у меня есть выражение if, которое началось достаточно невинно: if((something == -1) && (somethingelse == -1) && (etc == -1)) { // ... } Это растет. Я думаю, что сейчас должно быть 20 пунктов. Как я должен справиться с …
08 июн '09 в 17:04
2
ответа
Упрощение сопоставления вложенных шаблонов F#
Я пишу простой синтаксический анализатор выражений на F#, и для каждого оператора я хочу поддерживать только определенное количество операндов (например, два для Modulo, три для If). Вот что у меня есть: type Operator = | Modulo | Equals | If let pr…
16 мар '14 в 18:49
3
ответа
Как написать охранную оговорку с несколькими условиями в Ruby?
После запуска Rubocop против этого кода я получаю Use a guard clause instead of wrapping the code inside a conditional expression. Так что из того, что я прочитал, "оговорка об охране" выйдет из метода, если условие не будет выполнено, поэтому нам н…
09 сен '15 в 07:34
4
ответа
Охранное предложение и обработка исключений для одного и того же условия
Я наткнулся на следующий фрагмент кода. Имена были изменены, чтобы защитить невинных: public void RunProgram() { System.IO.FileInfo fInfo = new System.IO.FileInfo(Application.StartupPath + "Program.exe"); if (!fInfo.Exists) { System.Windows.Forms.Me…
08 май '09 в 14:57