Вопросы по теме 'idioms'

Что такое идиома программирования?
Я вижу фразу «идиома программирования», которую используют так, как будто ее все понимают. Но в результатах поиска и stackoverflow я все вижу ... С микро: Увеличение переменной Представляя бесконечный цикл Обмен значениями переменных...
27687 просмотров
schedule 04.01.2024

Что такое идиома Execute Around?
Что это за идиома "Execute Around" (или похожая), о которой я слышал? Почему я могу его использовать и почему я могу не захотеть его использовать?
23711 просмотров

Стилистический вопрос о возврате void
Рассмотрим следующий надуманный пример: void HandleThat() { ... } void HandleThis() { if (That) return HandleThat(); ... } Этот код работает отлично, и я почти уверен, что он соответствует спецификации, но я (возможно, сам по себе)...
300 просмотров
schedule 03.04.2022

Какие идиомы С++ должны использовать программисты на С++?
Какие идиомы С++ должны знать программисты на С++? Под идиомами C++ я подразумеваю шаблоны проектирования или способ выполнения определенных действий, которые применимы только для C++ или более применимы для C++, чем для большинства других языков....
15850 просмотров
schedule 27.06.2022

Какой самый идиоматический способ написания этого на Clojure?
Я написал эту функцию, которая делает это (проще показать, чем объяснить): (split 2 (list 1 2 3 4 5 6)) => ((1 2) (2 3) (3 4) (4 5) (5 6)) (defn split [n xs] (if (> (count xs) (dec n)) (cons (take n xs) (split n (rest...
1083 просмотров
schedule 14.03.2022

Как назвать этот шаблон защиты доступа, ориентированный на ключи?
Очевидно, этот шаблон защиты доступа, ориентированный на ключи : class SomeKey { friend class Foo; SomeKey() {} // possibly non-copyable too }; class Bar { public: void protectedMethod(SomeKey); // only friends of SomeKey have...
3184 просмотров

x или y: приемлемая идиома или запутывание?
Мне нужно извлечь значения из переменной, которая может быть None, с учетом некоторых значений по умолчанию. Сначала я написал этот код: if self.maxTiles is None: maxX, maxY = 2, 2 else: maxX, maxY = self.maxTiles Потом я понял, что...
402 просмотров
schedule 25.04.2022

Идиома аргумента по умолчанию в ruby
Что за идиома в Ruby, когда вы хотите иметь аргумент по умолчанию для функции, но такой, который зависит от другого параметра/другой переменной? Например, в Python пример: def insort_right(a, x, lo=0, hi=None): if hi is None: hi =...
5229 просмотров
schedule 16.06.2022

Есть ли у этой функции более высокого порядка имя?
Я вижу этот паттерн повсюду в своем коде и в библиотеках, но, кажется, нигде не могу найти его имени или абстракции. Пример (псевдокод) T foo( T x, void f(T&) ) { T y = x; f( y ); return y; } В основном: возьмите значение и...
162 просмотров

Получить первый элемент списка идиоматически в Groovy
Пусть код говорит первым def bars = foo.listBars() def firstBar = bars ? bars.first() : null def firstBarBetter = foo.listBars()?.getAt(0) Есть ли более элегантный или идиоматический способ получить первый элемент списка или нуль, если это...
40623 просмотров
schedule 22.04.2022

PHP — лучший способ инициализировать объект с большим количеством параметров и значений по умолчанию
Я разрабатываю класс, который определяет очень сложный объект с кучей (50+) в основном необязательных параметров, многие из которых будут иметь значения по умолчанию (например: $type = 'foo'; $width = '300'; $interactive = false; ). Я пытаюсь...
14376 просмотров
schedule 01.08.2023

Каковы последствия использования def vs. val для постоянных значений
Каковы последствия использования def и val в Scala для определения постоянного неизменяемого значения? Я, очевидно, могу написать следующее: val x = 3; def y = 4; var a = x + y; // 7 В чем разница между этими двумя утверждениями? Какой...
1084 просмотров
schedule 22.03.2022

Объединение объектов dict в Python
Как вы вычисляете объединение двух dict объектов в Python, где в результате присутствует пара (key, value) , если key равно in либо dict (если нет дубликатов)? Например, объединение {'a' : 0, 'b' : 1} и {'c' : 2} равно {'a' : 0, 'b' :...
88381 просмотров

идиомы для именованных параметров в конструкторах объектов в Perl
В Perl, если я хочу использовать именованные параметры в конструкторе объекта, мой код кажется немного неуклюжим, если я хочу иметь некоторую проверку. sub new { my $class = shift; my $self = {}; my %args = @_; foreach my $argname...
602 просмотров
schedule 09.09.2023

Идиоматический Clojure для выбора между случайными взвешенными вариантами
Работая с Clojure, я написал небольшой пример программы для случайного выбора из списка вариантов. Основная идея состоит в том, чтобы перебирать варианты (которым назначается вес) и превращать их веса в диапазон, а затем выбирать случайное число в...
2181 просмотров
schedule 04.11.2023

Идиома Javascript: что делает if (x === +x)?
Читая исходный код underscore.js , я наткнулся на следующую строку : ... if (obj.length === +obj.length) { ... Это немного сбивает меня с толку. Что вообще здесь сравнивают? Я считаю, что это как-то связано с обнаружением собственных...
739 просмотров
schedule 25.06.2022

Процедурная генерация большого списка значений в самом идиоматическом подходе Haskell? управление памятью?
У меня есть функция, которая принимает ряд случайных чисел/поплавков и использует их для генерации значения/структуры (т. е. принимает случайную скорость и положение точки, из которой выбрасывается мяч, и выводит координаты места, где он приземлится)...
245 просмотров
schedule 24.08.2023

Какой более идиоматический и лаконичный способ написать Треугольник Паскаля с помощью Clojure?
Я реализовал наивное решение для печати треугольника Паскаля глубины N, которое я включу ниже. Мой вопрос в том, как это можно улучшить, чтобы сделать его более идиоматичным? Я чувствую, что есть ряд вещей, которые кажутся слишком многословными или...
293 просмотров
schedule 26.10.2023

Идиоматическое управление конфигурацией в clojure?
Каков идиоматический способ обработки конфигурации приложения в clojure? Пока я использую эту среду: ;; config.clj {:k1 "v1" :k2 2} ;; core.clj (defn config [] (let [content (slurp "config.clj")] (binding [*read-eval* false]...
3686 просмотров

Карта функций и реализация протокола
Я новичок в clojure и пытаюсь разобраться в различных вариантах дизайна, доступных в разных ситуациях. В этом конкретном случае я хотел бы сгруппировать тесно связанные функции и сделать возможным передачу функций в виде коллекции. Когда...
481 просмотров
schedule 07.07.2023