Вопросы по теме 'idioms'
Что такое идиома программирования?
Я вижу фразу «идиома программирования», которую используют так, как будто ее все понимают. Но в результатах поиска и stackoverflow я все вижу ...
С микро:
Увеличение переменной
Представляя бесконечный цикл
Обмен значениями переменных...
27687 просмотров
schedule
04.01.2024
Что такое идиома Execute Around?
Что это за идиома "Execute Around" (или похожая), о которой я слышал? Почему я могу его использовать и почему я могу не захотеть его использовать?
23711 просмотров
schedule
03.02.2022
Стилистический вопрос о возврате 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 просмотров
schedule
25.05.2022
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 просмотров
schedule
15.11.2023
Получить первый элемент списка идиоматически в 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 просмотров
schedule
23.02.2022
идиомы для именованных параметров в конструкторах объектов в 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 просмотров
schedule
20.01.2024
Карта функций и реализация протокола
Я новичок в clojure и пытаюсь разобраться в различных вариантах дизайна, доступных в разных ситуациях. В этом конкретном случае я хотел бы сгруппировать тесно связанные функции и сделать возможным передачу функций в виде коллекции.
Когда...
481 просмотров
schedule
07.07.2023