ООП в WL это не нативная структура, а эмуляция написанная поверх паттерн матчинга. В этом смысле представление, что 0-элемент это "голова" более подходящее, так как хорошо подходит под свойства языка, что код и данные - одно и то же.
Но бывает, когда пишешь на двух-трех языках, то вечно где-то вместо 0 и 1 пишется и наоборот
Поддерживаю, ведь не обязательно в принципе специфичного для проекта мелкого модуля создавать полноценную библиотеку. Я бы в этих случаях просто обозначал BeginPackage[], для того, чтобы просто изолировать его переменные, затем, сохранял бы его в директорию проекта и потом заполучал Get-ом.
Но мне этим и нравится WL, что можно так, можно эдак, можно вовсе засунуть весь код в Module и также Get-ом его получить.
Да, верно. Но все равно в вашей программе найдется где-то главный Main, где нужны будут обычные переменные. Впрочем, ниче не стоит все еще раз завернуть в BeginPackage :)
Я думаю еще один возможный паттерн стоит упоминания.
Это в духе ES, Python и их импортов. Скажем, есть файл - "библиотека", но не хочется ее оформлять как настоящий Paclet, а что-то по компактнее и локаничнее
Вот это интересный вопрос! Я правильно ли понимаю, что DDT это в роде того, что есть хэш таблица (упрощенная -> табличка с адресами) с указателями на функции, исполняющие инструкции, а интерпретатор просто бежит по коду коду который ему дали и дергает по указателям функции со ссылкой на текущий стек и т.п.?
Я думаю это не так плохо. Вероятно старое API использует большое количество приложений (там взять хоть OriginPro 8.1 - допотопная версия графопостроителя, единственная, которая запустится под маком / линукс). А здесь - если удастся запустить Nuclear Strike, значит, еще целый ворох игр/приложений того времени будет работать с полпинка.
Я недавно перешел на мак. Мне нравятся там многие вещи, впечатления как будто скрестили linux и win. Однако кто бы как не хвалил osx, работа с окнами эффективнее выполнена в win.
Да как минимум можно SRAM синхронную повесить на целый порт, чтобы писать за один такт. Не знаю, есть ли там спец порты для внешней шины, но на младших кортексах от тех же Atmel и stm были, и даже с кэшем.
По больше бы периферии, там ленту светодиодов и индикацию инструкций на светодиодах. Тогда реально прикольная игрушка для елки. Захотел, сделал бегущий огонь с помощью регистров и лежит. А кому интересно, тот может переписать из гостей
Да, все верно, это либо проблема Электрона, либо Сономы. У меня половина программ отвалилась после обновления (Electron, RunJS, Ableton Live ... ) с вентуры (M1 Air).
Однако обновление до бета-версии Сономы помогло решить все проблемы.
ООП в WL это не нативная структура, а эмуляция написанная поверх паттерн матчинга. В этом смысле представление, что 0-элемент это "голова" более подходящее, так как хорошо подходит под свойства языка, что код и данные - одно и то же.
Но бывает, когда пишешь на двух-трех языках, то вечно где-то вместо 0 и 1 пишется и наоборот
Я думаю это стоит того, чтобы добавить в конце статьи
++
Добавлю свои две копейки к пункту 2. :)
Поддерживаю, ведь не обязательно в принципе специфичного для проекта мелкого модуля создавать полноценную библиотеку. Я бы в этих случаях просто обозначал
BeginPackage[]
, для того, чтобы просто изолировать его переменные, затем, сохранял бы его в директорию проекта и потом заполучалGet
-ом.Но мне этим и нравится WL, что можно так, можно эдак, можно вовсе засунуть весь код в
Module
и такжеGet
-ом его получить.Окей, понял свою ошибку. Извиняюсь, вот исправленная версия
Module.wl
Да, верно. Но все равно в вашей программе найдется где-то главный Main, где нужны будут обычные переменные. Впрочем, ниче не стоит все еще раз завернуть в BeginPackage :)
Я думаю еще один возможный паттерн стоит упоминания.
Это в духе ES, Python и их импортов. Скажем, есть файл - "библиотека", но не хочется ее оформлять как настоящий Paclet, а что-то по компактнее и локаничнее
Module.wl
Тогда где-то в вашем основном файле или блокноте программы - делаем один раз
Вот это интересный вопрос! Я правильно ли понимаю, что DDT это в роде того, что есть хэш таблица (упрощенная -> табличка с адресами) с указателями на функции, исполняющие инструкции, а интерпретатор просто бежит по коду коду который ему дали и дергает по указателям функции со ссылкой на текущий стек и т.п.?
UPD: а, уже ответили...
Там кстати это можно через расширения класса HTMLElement как показано в статье. Вещь интересная
Наконец то они додумались не мочить механическую клавиатуру, а вынести eink на крышу
Я думаю это не так плохо. Вероятно старое API использует большое количество приложений (там взять хоть OriginPro 8.1 - допотопная версия графопостроителя, единственная, которая запустится под маком / линукс). А здесь - если удастся запустить Nuclear Strike, значит, еще целый ворох игр/приложений того времени будет работать с полпинка.
За сепульки спасибо
Я недавно перешел на мак. Мне нравятся там многие вещи, впечатления как будто скрестили linux и win. Однако кто бы как не хвалил osx, работа с окнами эффективнее выполнена в win.
Ну чет вы переборщили…
Привет из 2023. Ничего не поменялось ) есть VR, и все такое, но ближайшее, к тому, что вы описали - это Motion control в геймпадах.
Можно цеплять CPLD - очень помогает. Я давно-давно искал способ вывода графики, но после многих попыток пришел к такому
https://www.youtube.com/watch?v=LxGfVtqwm2Q
Да как минимум можно SRAM синхронную повесить на целый порт, чтобы писать за один такт. Не знаю, есть ли там спец порты для внешней шины, но на младших кортексах от тех же Atmel и stm были, и даже с кэшем.
По больше бы периферии, там ленту светодиодов и индикацию инструкций на светодиодах. Тогда реально прикольная игрушка для елки. Захотел, сделал бегущий огонь с помощью регистров и лежит. А кому интересно, тот может переписать из гостей
А так круто! ??
Бойтесь autocomplete!
Очень жаль. Но спасибо за отзыв! Будем продолжать бороться за кроссплатформерность.
Да, все верно, это либо проблема Электрона, либо Сономы. У меня половина программ отвалилась после обновления (Electron, RunJS, Ableton Live ... ) с вентуры (M1 Air).
Однако обновление до бета-версии Сономы помогло решить все проблемы.
Обновил версию электрона, попробуйте этот https://github.com/JerryI/wolfram-js-frontend/releases/download/1.0.7/WLJS.Notebook-0.7.0-arm64.dmg