Мозг здесь не при чем. Дело, в основном, в языке. Язык формирует стиль и гибкость мышления, культура добавляет особенности восприятия и отношения. Именно это и формирует национальные особенности, которые, разумеется, проявляются и в деятельности.
Если это будет не удобно или если возникнут какие-нибудь проблемы, то будет добавлена функция-выделитель памяти типа a = #.array(1000).
В любом случае тот функционал автоматического выделения, который есть сейчас, останется.
У меня немного другой опыт. Пока пользователь набирает «math» он бы уже набрал нужную ему функцию «sin», «abs» или «sqrt». Да и количество функций в SPL будет не такое огромное, чтобы это могло вызвать дискомфорт. Но в любом случае спасибо за совет.
Ошибка: «Неверный тип индекса» в третьей строке. Потому что объект «arr» уже инициализировался как массив.
Памяти в случае массива выделяется по его максимальным индексам. В случае словаря — по необходимости. Промежуточных пустых значений нет — отсутствие величины это именно ее полное отсутствие. Попытка использовать отсутствующее значение приводит к ошибке выполнения.
При таком подходе, стоит ли вообще пользоваться компьютером для передачи настолько важной информации? Наскальная живопись в специально отведенных для этого местах уже прошла проверку временем и вполне подходит для записи доказательств с помощью эмодзи, разве нет?
Кстати нужно отметить, что хабр хорошо отобразил код и на русском, и на китайском языке.
Ключом может быть только текст. Если вы подаете число, то это будет уже обращение по индексу.
Если ключом является число, то его конечно нужно подавать в текстовом виде.
Это не вопрос для ответа в одном комментарии. Чтобы оценить язык нужно с ним сначала ознакомиться. Вряд-ли один только упрощенный синтаксис записи может быть серьезным плюсом. Важна общая идеология языка в целом. Я делал SPL с оглядкой на BASIC — чтобы SPL был проще, чем BASIC и при этом имел больше возможностей, чем BASIC. Если какой-то язык программирования, не важно какой, имеет десятки ключевых слов, описание типов, требует подключения библиотек для своей полноценной работы — я его отношу к категории «сложных» и как возможного конкурента для SPL даже не рассматриваю — это другая весовая категория.
В SPL пользователь при желании сам может разделить группу "#" на любые удобные ему подгруппы и переназвать функции. Например, из #.sqrt, #.drawline и #.output можно получить:
Если уж зашла речь о Питоне, то в нем только одних ключевых слов более трех десятков. И это не считая «закорючек». SPL же обходится всего несколькими «закорючками»: > < = — ?!. которые образуют около десяти визуально наглядных символических команд.
Кстати, по поводу синтаксиса SPL. Он не призван «решать» никакие проблемы. Он максимально просто формирует структуру кода, которая одновременно достаточно ясна и функциональна.
Знаете, вопросы относительно нужности SPL изначально ставятся в неверной плоскости. Я бы сказал даже так: если вы — программист, то SPL вам не нужен. Он вам нужен, если вы — не программист. Если вы — просто человек, которому интересно попробовать программирование. Студент не программистской специальности, домохозяйка, любопытный ребенок. Все дело в том, что современные языки программирования поставили стену между такими вот «случайными» людьми и программированием. В то время как нас просто окружают компьютеры, а программирование само по себе может быть очень увлекательным и полезным, уровень квалификации, требуемый для того, чтобы написать мало-мальское приложение, в наше время очень высокий. Задача SPL — не вам, как программисту, дать новый инструмент. Его задача дать не-программисту простой и доступный инструмент.
Если вы скажете, что это все не так, что таких людей, интересующихся прогаммированием нет, или что таким людям не проблема освоить, скажем, Питон и начать на нем писать программы для своих домашних нужд — то это не так. Такие люди есть, и им освоить современный язык программирования со всеми его API — большая проблема. Образовалась пропасть между «просто людьми» и программированием именно по причине сложности современных языков. Считайте меня популяризатором программирования как ХОББИ, и SPL — мой инструмент, который я делаю для таких людей. Так что бессмысленно спрашивать меня зачем нужен SPL если есть этот язык и вот этот язык, потому что если вам в голову приходит такой вопрос, то значит, что он вам, скорее всего, просто не нужен.
Конечно я немного лукавлю. Я сам, будучи профессиональным программистом, периодически пользуюсь собственными инструментами, которые делаю для «не профессионалов», чтобы быстро и просто решить какую-нибудь мелкую задачу — проверить алгоритм, сделать сетевое приложение чтобы обработать какой-нибудь сайт или набросать мини-игру, потому что это просто интересно. Но это — не самое главное. Главное — тот позитив, который я получаю от пользователей не-программистов, пришедших к программированию благодаря моему софту. SPL — не первый мой язык программирования, и я знаю о чем пишу. Но это — моя последняя разработка на данный момент, и в нем будет реализован весь мой опыт решения таких задач.
Спасибо за хороший вопрос.
В SPL функции первого порядка. То есть эта программа:
f()<=#.output
f()(«Text»)
напечатает «Text». В ней в первой строке функция F возвращает в качестве своего результата системную функцию #.OUTPUT, которая во второй строке будучи вызвана как результат работы функции F, напечатает «Text».
Или например эта программа напечатает число 2:
v(x,y)<=x(y)
#.output(v(#.sqrt,4))
здесь функция V принимает два параметра X и Y, а возвращает результат выполнения первого параметра X со вторым параметром Y в качестве параметра. Во второй строке функция V вызывается с системной функцией #.SQRT в качестве первого параметра и числом 4 в качестве второго параметра. В итоге печатается число 2 как результат #.sqrt(4)
В любом случае тот функционал автоматического выделения, который есть сейчас, останется.
Чем принципиально отличается
int[] m = int[1000]
от
m[1000]=0
что аж прямо «жесть»?
И какие могут быть проблемы со словарями?
Памяти в случае массива выделяется по его максимальным индексам. В случае словаря — по необходимости. Промежуточных пустых значений нет — отсутствие величины это именно ее полное отсутствие. Попытка использовать отсутствующее значение приводит к ошибке выполнения.
Кстати нужно отметить, что хабр хорошо отобразил код и на русском, и на китайском языке.
Если ключом является число, то его конечно нужно подавать в текстовом виде.
$x
math.sqr = #.sqrt
gfx.line = #.drawline
print = #.output
Кстати, по поводу синтаксиса SPL. Он не призван «решать» никакие проблемы. Он максимально просто формирует структуру кода, которая одновременно достаточно ясна и функциональна.
Если вы скажете, что это все не так, что таких людей, интересующихся прогаммированием нет, или что таким людям не проблема освоить, скажем, Питон и начать на нем писать программы для своих домашних нужд — то это не так. Такие люди есть, и им освоить современный язык программирования со всеми его API — большая проблема. Образовалась пропасть между «просто людьми» и программированием именно по причине сложности современных языков. Считайте меня популяризатором программирования как ХОББИ, и SPL — мой инструмент, который я делаю для таких людей. Так что бессмысленно спрашивать меня зачем нужен SPL если есть этот язык и вот этот язык, потому что если вам в голову приходит такой вопрос, то значит, что он вам, скорее всего, просто не нужен.
Конечно я немного лукавлю. Я сам, будучи профессиональным программистом, периодически пользуюсь собственными инструментами, которые делаю для «не профессионалов», чтобы быстро и просто решить какую-нибудь мелкую задачу — проверить алгоритм, сделать сетевое приложение чтобы обработать какой-нибудь сайт или набросать мини-игру, потому что это просто интересно. Но это — не самое главное. Главное — тот позитив, который я получаю от пользователей не-программистов, пришедших к программированию благодаря моему софту. SPL — не первый мой язык программирования, и я знаю о чем пишу. Но это — моя последняя разработка на данный момент, и в нем будет реализован весь мой опыт решения таких задач.
В SPL функции первого порядка. То есть эта программа:
f()<=#.output
f()(«Text»)
напечатает «Text». В ней в первой строке функция F возвращает в качестве своего результата системную функцию #.OUTPUT, которая во второй строке будучи вызвана как результат работы функции F, напечатает «Text».
Или например эта программа напечатает число 2:
v(x,y)<=x(y)
#.output(v(#.sqrt,4))
здесь функция V принимает два параметра X и Y, а возвращает результат выполнения первого параметра X со вторым параметром Y в качестве параметра. Во второй строке функция V вызывается с системной функцией #.SQRT в качестве первого параметра и числом 4 в качестве второго параметра. В итоге печатается число 2 как результат #.sqrt(4)