Свързани публикации 'metaprogramming'


Метапрограмиране за тестване на потребителския интерфейс: PBT и абстрактно композиционно сключване
Както споменахме в предишен блог , постигнахме възможността да откриваме UI компоненти в приложение TornadoFX. Тъй като преработваме и прехвърляме кодовата база към Gradle в подготовка за генериране на тестове, трябваше да помисля върху тестване, което може да бъде генерирано без интелигентност, но може да бъде достатъчно информативно, за да си струва да бъде анализирано. Отидох на моб сесия на Chicago KUG с хора, много по-умни от мен (и с опит в писането на тестове в няколко рамки),..

Нов декоратор на клас „dataclass“ в Python3.7
Докато се натъквах на новите функции, добавени в Python 3.7, новодобавеният модул привлече вниманието ми, който е известен като „класове от данни“. Този модул излага декоратор на клас, наречен „dataclass“, който обвива дефиницията на класа и мирише много подобно на „collections.namedtuple“. На пръв поглед изглеждаше като чиста магия, защото според документацията прави черна магия върху „анотации“, които бяха добавени на python3.5 и инжектира методи на клас като „__init__“, „__repr__“ и..

Решаване като робот. НЕ! (Булев израз в Ruby)
Понякога трябва да създаваме досадни „правила“, за да вземаме решения, когато кодираме неща като това if foo & bar & a.eql?('foo') || foo_bar == bar || ... # and so on Така че, за да го запазим „четлив“, трябва да направим някои подобрения, като създаване на методи за повторно използване на някои изрази или просто влагане на изрази, за да избегнем дълги редове код. Но, ако мислим като „машина“, трябва да интерпретираме „истински“ и „фалшиви“ стойности (двоични стойности 1,0)..

Метапрограмиране с React
Целта не е да навлизаме в подробности какво представлява метапрограмирането и неговите техники, а само да видим пример как да го приложим в React. Това е първата ми публикация в тази фантастична среда и бих искал да напиша малко за една техника, която вече сме използвали веднъж в живота си (от програмист), но която може да не знаем в детайли, метапрограмиране ! Кодът по-долу е пример за това как да използвате конструкцията Proxy и API Reflect в рамките на компонент на..

Метапрограмиране в JavaScript с jscodeshift
Част 1: Как да анализирате и модифицирате вашите програми Метапрограмирането е мощен, но недооценен инструмент. Въпреки че много широко използвани инструменти за разработка го използват под капака, интересът към метапрограмирането непрекъснато намалява (поне според данните на Google Trends): Може да има много причини зад тенденцията. Преди това беше доста популярен инструмент в областите, в които днес машинното обучение процъфтява. Тъй като инструментите за разработка стават все..

Свързани въпроси 'metaprogramming'

Защо не мога да използвам attr_accessor вътре в инициализацията?
Опитвам се да направя instance_eval , последвано от attr_accessor вътре в initialize , и продължавам да получавам това: ``initialize': undefined method 'attr_accessor'`. Защо това не работи? Кодът изглежда така: class MyClass def...
5184 изгледи
schedule 23.09.2022

Динамични параметри за метапрограмиране в JavaScript?
Искам да делегирам няколко метода от един JavaScript-обект на друг. Така че си помислих да използвам метапрограмиране, за да не се дефинират няколко метода само като делегати. Досега стигнах до този метод: function delegate_to(_method, _obj) {...
590 изгледи

Извлечете ClassSymbols за границите на параметрите на метода
Опитвам се да извлека ClassSymbol s за всички граници на параметрите на типа на метод. Решението, което измислих: Внедряване на анотации на макроси: @compileTimeOnly("Compile-time only annotation") class classSyms extends...
41 изгледи
schedule 14.09.2022

Модификацията на метаклас на Grails не е надеждна в рамките на единични тестове
В проект на grails 2 използвам програмирането на метакласове на Groovy, за да добавя някои методи към моите класове на домейн. Всичко работи добре по време на изпълнение и мога да изпълнявам моите интеграционни тестове добре. Но за единичните...
991 изгледи
schedule 03.10.2022

включване на модул към клас с клас метод, препращащ към модула, който ще бъде включен
Имам следния пример class Test configure_helper end module ConfigureHelper module ClassMethods def configure_helper end end end ConfigureHelper има още малко функционалност, която ще разшири класа с ClassMethods, в който е...
131 изгледи
schedule 08.10.2022

Как да използвам boost::mpl за съставяне на политики?
Използвал съм нещо като следното, за да съставя политики за моето приложение: Класовете правила изглеждат така: struct Policy { static void init(); static void cleanup(); //... }; template <class CarT, class CdrT> struct Cons {...
2250 изгледи
schedule 22.11.2022

Може ли Java Classloader да пренапише байт кода на (само тяхното копие на) системни класове?
Така че имам програма за зареждане на класове (MyClassLoader), която поддържа набор от "специални" класове в паметта. Тези специални класове се компилират динамично и се съхраняват в байтов масив в MyClassLoader. Когато MyClassLoader бъде помолен за...
5994 изгледи

Динамично създаване на клас метод
Пиша метод на клас, за да създам друг метод на клас. Изглежда има известна странност в това как class_eval и instance_eval работят в контекста на метод на клас. За да илюстрирам: class Test1 def self.add_foo self.class_eval do # does...
928 изгледи
schedule 01.11.2023

SystemStackError - нивото на стека е твърде дълбоко: Използване на метапрограмиране с ActiveRecord
Трябва да получа всички способности за current_user в :json за моето основно приложение. Така че първата идея беше да добавим нещо като това: def receive_user_abilities # we will return onty hash for works and tasks w =...
348 изгледи
schedule 03.11.2022

съвпадение на множество типове за разрешаване на специализация на шаблон
Накратко отхвърлете факта, че нормалното претоварване на функциите ще служи по-добре на този пример. Това е предназначено само като начин да научите за програмирането на шаблони. Като каза това, добре дошли сте да коментирате ползите/разликите,...
3339 изгледи
schedule 04.12.2023

Как се реализира super() в Python 3?
Чудя се как е внедрен новият супер в Python 3. Този въпрос се роди в главата ми, след като направих малък пример и получих странна грешка. Използвам Pyutilib Component architecture (PCA) и съм направил моя персонализиран метаклас за стимулиране...
2893 изгледи

Как да използвате define_method вътре в initialize()
Опитвате се да използвате define_method вътре initialize , но получавате undefined_method define_method . какво правя грешно class C def initialize(n) define_method ("#{n}") { puts "some method #{n}" } end end C.new("abc")...
11645 изгледи
schedule 12.12.2023

c++11 променливо програмиране, как да дефинираме кула от вектори
Как (ако е възможно) мога да използвам c++11 променливо програмиране, за да дефинирам поредица от vector в тяло на функция (или с други думи, поредица от N -измерни масиви с намаляващи N до 0), като променливите по-долу?...
1393 изгледи
schedule 15.12.2023

Създаване на подобни функции с помощта на Lisp макрос
В работата си се опитвам да използвам макроси в Common Lisp и имам някои въпроси. Имам две функции (defun when-tagflag () (when (= tagflag 1) (setf tagflag 0) (push tagbuf taglist) (setf tagbuf ""))) (defun when-attrflag () (when...
111 изгледи
schedule 06.12.2023

Excel VBA програмно добавя потребителска форма на код
Имам труден проблем с моя VBA-код. Ситуацията е, че имам ръчно създаден потребителски формуляр. Добавям контроли към потребителската форма с макрос и работи добре за мен. Но сега също трябва да добавя код на събитие към потребителския формуляр....
1787 изгледи

Метапрограмирането на шаблони по-бързо ли е от еквивалентния C код?
Метапрограмирането на шаблона по-бързо ли е от еквивалентния C код? (Говоря за производителността по време на изпълнение) :)
4703 изгледи

липсва константа за спасяване на ruby?
преди няколко месеца използвах някаква ruby ​​библиотека (не мога да си спомня коя точно, за съжаление) Бях изненадан да видя, че ми позволи да инициализирам неговия екземпляр с нещо подобно: Lib::SOMETHING(args) Наистина не разбирам как...
645 изгледи
schedule 05.01.2024

Генериране на клаузи за изискване с макроси на Racket
Добре, трябва да съм много глупав. Опитвам се да създам макрос (част от по-голямо начинание), който при дадена функция я обгръща в свой собствен подмодул, след което я require s, така че функциите, дефинирани по този начин, да не могат да се...
162 изгледи

Автоматично добавяне на функционални префикси към C++ функции
Пренасям малка C++ кодова база за извикване на графичната карта чрез CUDA. CUDA изисква всички функции да бъдат добавени с __host__ __device__ , за да могат да се извикват както от CPU, така и в кода на ядрото на GPU. напр. void foo() {} //...
162 изгледи
schedule 10.01.2024

Внедряване на AnyMap и време за изпълнение на `struct Port(u32);`
Четох „24 days of Rust“ и примера за AnyMap използване току-що взриви ума ми. Разгледайте следния код: #[deriving(Show)] struct Port(u32); #[deriving(Show)] struct ConnectionLimit(u32); Казва: Тук типовете Port и...
155 изгледи
schedule 18.11.2023