- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
import std.stdio;
template GenMix()
{
const char[] GenMix =
"template GenMix2()" ~
"{" ~
" const char[] GenMix2 = \"writeln(\\\"Hello, Wandbox!\\\");\";" ~
"};";
}
template MixMix(string Name)
{
const char[] MixMix = "mixin(" ~ Name ~ "!());";
}
mixin(GenMix!());
void main()
{
mixin(GenMix2!());
mixin(MixMix!("GenMix2"));
}
j123123 10.07.2021 15:20 # 0
bormand 10.07.2021 15:24 # 0
j123123 10.07.2021 15:25 # +2
bormand 10.07.2021 15:27 # +2
А потом перепишешь сам себя на свой язык.
bormand 10.07.2021 20:44 # 0
Там ещё и отсутствующие методы можно генерить по имени в момент их использования.
MAKAKA 10.07.2021 21:02 # 0
Desktop 10.07.2021 21:45 # 0
MAKAKA 10.07.2021 21:55 # 0
Desktop 10.07.2021 21:58 # 0
MAKAKA 10.07.2021 22:00 # 0
Я говорил про макнипатчинг, и специально оговорился, что "код надо писать заранее".
Если под генерацией мы имеем ввиду генерацию кода, то да, так делать нельзя
bormand 10.07.2021 22:24 # 0
Да, в D это именно генерация. Ты обращаешься к несуществующему свойству foo.bar, обработчик несуществующих членов класса Foo триггерится в компайлтайме и генерит код.
Прям как магические методы в PHP, но в компайлтайме.
MAKAKA 10.07.2021 22:29 # 0
воу, круто
ну собссно как инстанциация шоблоёбл
Desktop 10.07.2021 22:34 # 0
bormand 10.07.2021 22:35 # 0
MAKAKA 10.07.2021 22:38 # 0
j123123 11.07.2021 12:35 # +1
guest6 10.07.2021 21:16 # 0
MAKAKA 10.07.2021 15:55 # 0
или tcl, там это прямо фёрст класс ситизн
j123123 10.07.2021 16:06 # 0
MAKAKA 10.07.2021 16:37 # 0
но разумеется рантайм там всё равно есть
JloJle4Ka 10.07.2021 16:46 # 0
j123123 10.07.2021 17:00 # 0
bormand 10.07.2021 17:02 # +1
j123123 10.07.2021 17:39 # +1
MAKAKA 10.07.2021 17:04 # +2
JloJle4Ka 10.07.2021 17:07 # +1
Ты разве не что-то типа этого программируешь?
До появления Arduino создание электронных устройств было сложным процессом, требующим серьезной подготовки. Платформа открыла дверь в мир электроники новичкам и облегчила жизнь опытным разработчикам.
Мы сделали следующий шаг. Iskra JS — это Arduino-подобный контроллер, понимающий язык JavaScript. Для сборки устройств теперь не нужно осваивать громоздкий С++. Вы будете писать код на JavaScript и управлять электронными модулями: считывать значения с сенсоров, а не ввод пользователя из форм; управлять сервоприводами, а не элементами веб-страницы.
Платформа и набор разработаны и сделаны в России.
HEu3BECTHblu_nemyx 10.07.2021 17:19 # +1
Soul_re@ver 10.07.2021 17:58 # +3
И отдельные лучи ненависти за то, что узнать, что в стандартной ардуинолибе некая хуйня — это макрос, можно только ВНИМАТЕЛЬНО почитав референс. Ну или когда всё сломается. Naming Conventions для слабаков, да.
MAKAKA 10.07.2021 19:50 # 0
ну знаете, в никсаъ тоже часто пишут "may be implemented as macros" в доке
В макоси тоже есть, например XCTAssert
j123123 10.07.2021 19:21 # +1
С каких пор "Arduino" стал контроллером? Это видимо из той же серии, когда системный блок называют процессором.
https://vchemraznica.ru/wp-content/uploads/2017/02/siirs566.jpg
bormand 10.07.2021 19:23 # 0
Хотя на ПЛК ардуинка конечно не тянет.
j123123 10.07.2021 19:29 # 0
bormand 10.07.2021 19:33 # +1
j123123 10.07.2021 19:34 # +4
https://habr.com/ru/post/221663/
bormand 10.07.2021 19:39 # +2
MAKAKA 10.07.2021 19:41 # +4
После долгих мытарств, в итоге, я отгородил магнитные пускатели от контроллера подключенной к нейтрали стальной пластиной (заземления к сожалению на момент установки еще не было)
а проблему дисплея решил программно с использованием функции delay();. Как только программа выполняла пуск двигателя или его остановку, включался секундный delay()
какой пиздец
bormand 10.07.2021 19:44 # +1
HEu3BECTHblu_nemyx 10.07.2021 21:29 # +2
Интересно, кто-нибудь проверял.
Soul_re@ver 10.07.2021 21:41 # +2
CHayT 10.07.2021 19:28 # 0
https://github.com/grisp/grisp
j123123 10.07.2021 21:39 # 0
https://wiki.rtzra.ru/_media/qigong/we_need_to_go_deeper.jpg
https://imgs.xkcd.com/comics/backslashes.png
j123123 10.07.2021 21:54 # 0