Публикации по теме 'metaprogramming'


Представляем пикоког
Picocog — это легкая и новая библиотека Java с открытым исходным кодом, предназначенная для помощи в создании программного кода. Что такое генерация кода? Генерация кода — это процесс, с помощью которого исходный код может быть автоматически сгенерирован на основе некоторых входных данных. Мы описываем этот набор входных данных как «модель». Генерация кода обычно работает следующим образом: Определить модель/использовать существующую модель. Опросить модель и сгенерировать..

Руководство программиста по линейным системам
Есть интерактивная версия этой статьи на словах и кнопках: https://wordsandbuttons.online/programmers_introduction_to_linear_equations.html Системы линейных уравнений обычно преподают в средней школе или колледже. Скорее всего, вы уже знаете, как их решать несколькими способами, из которых вам никогда не приходилось использовать на практике. Так зачем вам руководство по этому поводу? Одна из причин заключается в том, что поскольку эта тема широко известна, она представляет собой..

Внимательные декораторы и удобные прокси  — «Метапрограммирование для всех».
Внимательные декораторы и удобные прокси — метапрограммирование для всех. Ссылка на мероприятие: Виртуальная встреча CinciJS — 10 марта 2021 г. (ЗАВЕРШЕНО) Презентация Google слайдов GitHub Repo for Decorators Playground (включает Babel Legacy, Babel TC39, Typescript) Обзор: Метапрограммирование — это магия. Возможность устранить избыточность, обеспечить согласованность и беспрепятственно интегрировать шаблоны проектирования — мечта каждого разработчика...

Метапрограммирование: что это такое и как работает в Ruby
Метапрограммирование - что это такое и почему вам это нужно? Базовое слово мета можно определить как самореферентный , подразумевая, что метапрограммирование относится к коду, который пишет код. Если вы ленивы, как я, это очень привлекательная концепция: написание кода для генерации большего количества кода для вас означает выполнение большего объема работы с меньшим количеством набора текста. Итак, как это работает и как это выглядит? Учтите следующее: class Person..

Представляем Hone: модульную объектно-ориентированную графическую библиотеку для Джулии
Внесение последних штрихов в первую версию моей графической библиотеки для Юлии. Графические данные могут быть очень захватывающими, особенно если вы какое-то время работали над функцией построения графиков, и теперь они наконец-то работают так, как вы этого хотите. Хотя многие параметры по-прежнему отсутствуют и предстоит еще много работы, есть много действительно многообещающих функций, которые уже были устранены. С этими замечательными вещами также приходит толчок к освоению первой..

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

Как я могу динамически добавить метод к классу Math в Ruby on Rails?
Я пытаюсь добавить в класс Math в Ruby on Rails следующий метод: class Math def self.round_with_precision(number, precision) scalar = 10.0 ** precision number = number * scalar number = number.round number = number / scalar...
1066 просмотров

Добавление атрибутов класса с помощью цикла for в Python
Я пытался создать класс из словаря: class attr: for key in objects_type: setattr(attr, key, lambda cl: list()) Это дает ошибку, заключающуюся в том, что attr не определен во время цикла for. Я знаю, что могу написать: class...
8003 просмотров
schedule 22.11.2021

Что такое Ruby-аналог метаклассов Python?
В Python есть идея метаклассов, которые, если я правильно понимаю, позволяют вам изменять объект класса в момент создания. Вы изменяете не класс, а объект, который должен быть создан и инициализирован. Python (по крайней мере, с версии 3.0, я...
1623 просмотров
schedule 03.12.2021

Существуют ли в реальном мире приложения, использующие метапрограммирование?
Все мы знаем, что метапрограммирование - это концепция кода == данных (или программ, которые пишут программы). Но есть ли какие-нибудь приложения, которые его используют, и каковы преимущества его использования? Этот вопрос можно закрыть, но я...
1518 просмотров
schedule 21.11.2021

Проверка во время компиляции, находится ли указанное значение в диапазоне типа
Можно ли это проверить: template<class IntType,IntType value> struct X{}; Под этим я подразумеваю, можно ли проверить, что значение, предоставленное пользователем, «вписывается» в тип IntType (который может быть любым из целочисленных...
1993 просмотров
schedule 18.11.2021

Как создавать свойства с делегированными аксессорами?
Я новичок в С # и ломал голову над этим пару дней. В основном я хочу создать тип свойства с логикой получения и установки, делегированной базовому типу, которому принадлежит этот параметр. Это всего лишь одно приложение: свойство, значение...
580 просмотров
schedule 31.10.2021

Динамические методы CoffeeScript
Я пытаюсь динамически создавать методы в сценарии кофе, но, как показывает мой код, итератор, который я использую для создания методов, не сбрасывает свои переменные между итерациями, поэтому я использую общие переменные, которые конфликтуют:...
2490 просмотров
schedule 06.10.2021

PHP: обернуть все функции класса в подкласс
Работая с классом библиотеки PHP, и я хотел бы обернуть все его общедоступные функции в подкласс ... Что-то вроде: class BaseClass { function do_something() { some; stuff; } function do_something_else() {...
6452 просмотров

АОП против метапрограммирования
Есть ли разница между АОП и метапрограммированием? Можно ли сказать, что методы метапрограммирования (переплетение IL, динамическое подклассирование и т. Д.) - это механизмы для достижения АОП, который больше касается разделения сквозных проблем от...
513 просмотров
schedule 04.11.2021

class_eval против instance_eval
Есть ли разница в том, как class_eval & instance_eval работают, кроме def ? Внутри class_eval блока def определяется метод самого класса (то есть метод экземпляра), а внутри instance_eval def метод определяет собственный класс класса (то...
1491 просмотров

Реализация Loki IndexOf для TypeList
Я реализовал TypeList на основе Loki, основываясь на чтении из: http://aszt.inf.elte.hu/~gsd/halado_cpp/ch06s09.html и видел этот код с сайта для IndexOf (чтобы найти индекс типа в списке типов): template <class T> struct IndexOf<...
704 просмотров
schedule 30.10.2021

Метакласс Python для автоматического запуска метода класса в производном классе
Я хочу автоматически запускать метод класса, определенный в базовом классе, в любом производном классе во время создания класса. Например: class Base(object): @classmethod def runme(): print "I am being run" def...
2835 просмотров
schedule 15.09.2021

Определение динамического метода в ruby
Что делают $1.to_sym => args[0] и ($1.to_sym,*args,&block) в следующей строке кода? class Table def method_missing(id,*args,&block) return as($1.to_sym,*args,&block) if id.to_s =~ /^to_(.*)/ return rows_with($1.to_sym...
384 просмотров
schedule 14.09.2021

Можно установить машину! и установите-cdr! реализованы как макросы?
Можно ли реализовать set-car! и set-cdr! переносимо как макросы, используя set! в схеме? Или для этого потребуется специальный доступ к базовой системе хранения? Я спрашиваю, потому что я реализую свой собственный интерпретатор схемы, и я...
1436 просмотров

Принципы дизайна, лежащие в основе std :: ratio ‹›
Я смотрел на класс std::ratio<> из стандарта C ++ 11, который позволяет сделать рациональную арифметику во время компиляции. Я нашел дизайн шаблона и операции, реализованные с классами, слишком сложными, и не нашел причин, по которым они...
5024 просмотров

Создание методов класса из модуля
Рассмотрим простой пример здесь: class Base @tag = nil def self.tag(v = nil) return @tag unless v @tag = v end end class A < Base tag :A end class B < Base tag :B end class C < Base; end puts "A: #{A.tag}"...
152 просмотров
schedule 29.11.2021

Как работает функция, которая вызывается внутри объявления класса?
Есть этот код: >>> class Foo: ... zope.interface.implements(IFoo) ... ... def __init__(self, x=None): ... self.x = x ... ... def bar(self, q, r=None): ... return q, r, self.x ... ... def __repr__(self): ......
793 просмотров

Добавить сообщения об ошибках компиляции в макрос SFINAE
Я играю с SFINAE , но я пытаюсь получить значимую ошибку компилятора информация при работе с кодом, сгенерированным макросами. Я использовал ЭТОТ ответ , чтобы выполнить следующее: (Я хочу проверить с помощью member_test (a), есть ли у типа A...
528 просмотров

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

Создание функции php mapper
Я хочу создать функцию сопоставления, которая принимает массив, строку ключа и строку значения. Эти две строки содержат код PHP, который я хочу оценивать по каждому элементу в массиве. Возвращаемые значения этих двух вызовов следует использовать...
355 просмотров
schedule 01.11.2021