Собственно, механизм исключений — это и есть тот «запасный» путь, фактически та же монада, создаваемая компилятором. Причина ошибки, разумеется, передаётся не в стектрейсе, а в типе исключения. И да, исключения действительно упрощают императивный код, отчего и стали популярными. Однако,
1) в императивном программировании считается моветоном использовать исключения для управления потоком выполнения, т.е. часть некритических ошибок приходится обрабатывать if/return-ами, нарушая единообразие.
2) собственно ошибками дело и ограничивается, т.е. механизм заточен под единственную цель, и нет языковых средств создавать свои монады.
Ну, формально, так как в строке есть {4}, то ожидается таки 5 аргументов :) Либо в сообщении нужно уточнять, что мол «нарушена нумерация параметров в строке формата», или «параметр {4} в строке форматирования никогда не используется».
> принцип экономии мышления, то есть очевидный антропоцентризм.
Экономия не «мышления», а «затрат», не надо подменять. И это не антропоцентризм — организмы, отличные от людей (и даже неживые механизмы) точно так же получают преимущество, если достигают результата с меньшими затратами энергии, времени и памяти.
Спору нет, эволюционное преимущество можно получать разными способами, опирающимися на разные законы природы. Я говорил лишь об одном из способов — через снижение сложности и, следовательно, энергозатрат. Этот способ не всегда доминирует, но он есть, и он очень важен. В эволюции научных теорий — чрезвычайно важен, потому что вычислительная мощность человеческого мозга есть весьма ограниченный ресурс, и сложные запутанные теории (или множества частных теорий на каждый случай) в нём держатся плохо, стабильно сменяясь более простыми и обобщёнными.
Если у нас есть две модели, дающие одинаковый результат, то выбор менее сложной обусловлен чисто энергетическими причинами: более сложная модель требует больше энергии для расчёта, больше памяти для хранения и проч. Так что те, кто пользуются более экономной моделью, получают эволюционное преимущество.
Так что бритва Оккама вполне сводима к базовым законам природы.
> здесь должны быть исключительно ссылки на законы с толкованием термина по законам Украины
В законе Украины не даётся какого либо специального определения термину «законное платёжное средство» (кроме утверждения, что это гривна, и что она обязательна к приёму). При этом имеется давняя мировая практика использования этого термина. На каком юридичесском основании украинская гривна в Украине является чем-то отличным от рубля в России или от доллара в США? На что ссылаться?
Термину «законное платёжное средство» (legal tender) уже не одна сотня лет, и означает он именно это: закон обязывает принимать данное средство к расчётам. Какой бы товар или услугу я не продавал, я всегда имею право потребовать оплаты гривной, а не золотом или шкурками енотов. Если кто-то хочет заплатить шкурками — я вправе принять шкурки (это не будет незаконно). Но если шкурки мне не нужны, то, по-закону, я вправе потребовать от покупателя обменять его шкурки на гривны и принести мне гривны, и покупатель не вправе отказать платить под предлогом «у меня нет гривен, только шкурки». Равно как покупатель может требовать приёма оплаты в гривнах, даже если я требую платить шкурками, долларами или биткойнами. Если мне нужны биткойны — я законом обязан принять гривны и обменять их на биткойны самостоятельно. Всю отчётность, соответсвенно, тоже должен вести в гривне.
В этом суть понятия legal tender. Украина изобрела своё понятие, отличное от общепринятого?
> Все остальное — незаконно.
Это означало бы, что пользоваться долларами тоже незаконно. Но это не так — вы можете спокойно оформить договор в гривне, но (при согласии сторон) заплатить долларами или шкурками енотов по курсу, и вас за это не посадят — несмотря на то, что доллары/шкурки, по-вашему, являются «незаконным платёжным средством».
> А «платежная организация» там тоже есть
«Платежная организация — юридическое лицо, являющееся владельцем или получило право на использование товарного и других знаков, ...»
Ну и какое юридическое лицо стоит за биткойном? Bitcoin Foundation Ukraine таковой, очевидно, не является — это страничка в фейсбуке, клуб по интересам, общественная инициатива — всё что угодно, а не платёжная организация, «определяющая правила пользования» биткойном и «обеспечивающая деятельность» биткойн-сети. Что он там определяет и обеспечивает?
> Технические детали исполнителей не интересуют. Кто сильнее, тот и прав.
Согласен, но это уже другая тема: не «нарушение закона путём выпуска незаконного платёжного средства», а «попрание закона путём его избирательного трактования и неправомерных действий правоохранительных органов». Или, например, «пробное искусственное обвинение для создания в будущем судебного прецедента и разрешения юридической коллизии». Или, как вы заметили выше, биткойн в данном случае лишь прикрытие, а обвинение совсем о другом — неуплата налогов, например.
Это означает, что единственной формой платежа, обязательной к приёму, является гривна, и другой такой (обязательной к приёму) быть не может. Биткойн не обязателен к приёму, ни одна из сторон не может законным образом требовать оплаты договора в биткойнах (в отличие от гривны), поэтому его выпуск не является выпуском законного платёжного средства, альтернативного гривне. Оплата биткойнами равносильна оплате золотыми слитками или меховыми шкурками. В США, например, подумали и решили считать биткойн commodity, а не currency, что вполне разумно.
Далее, в вашем законе есть определение «платёжной системы»: «1.29) платежная система — платежная организация, члены платежной системы и совокупность отношений, которые возникают между ними при проведении перевода средств.» Заметьте — в определении фигурирует платёжная организация.
Однако, за биткойном не стоит никакой организации, к которой можно предъявить незаконный выпуск платёжных средств. Майнеры не являются эмитентами биткойнов, потому что они не изготавливают их, а _получают_ от системы, как оплату за выполненную работу по расчёту хэш-сумм. Биткойны, можно сказать, «самозарождаются» природным способом, из математических свойств чисел, и эта «манна небесная», сыпящаяся с цифрового неба, распределяется специальным алгоритмом по участникам, согласно затраченной работе. И близко не похоже на эмиссию обычных денег или псевдо-валют.
Термин «законное платёжное средство» не означает, что все другие формы платежа незаконны. Он лишь означает, что данная форма платежа обязательна к приёму на территории данной страны.
Вот только «one-time» == «одноразовый» («однократный»), а не «односторонний». Одностороннее связывание — это one-way binding.
Например, ng-bind=«vm.text», {{vm.text}}, ng-bind="::vm.text", {{::vm.text}} — это всё односторонние связки (от модели к представлению, но не наоборот), но из них только две последних — одноразовые.
Причём эта сильная экономика держится на свободной международной торговле, свобода которой держится (в числе прочего) на безопасности морских торговых путей, а оная свобода поддерживается (в числе прочего) авианосцами и крейсерами ВМС США и союзников.
Можно не избегать делиться информацией, а наоборот — заваливать систему нерелевантной информацией. Заводить кучи аккаунтов, лайкать всё подряд, генерировать странные запросы и прочий шум.
1) в императивном программировании считается моветоном использовать исключения для управления потоком выполнения, т.е. часть некритических ошибок приходится обрабатывать if/return-ами, нарушая единообразие.
2) собственно ошибками дело и ограничивается, т.е. механизм заточен под единственную цель, и нет языковых средств создавать свои монады.
Тогда, то же самое, в форме видео:
https://vimeo.com/97344498
http://www.slideshare.net/ScottWlaschin/railway-oriented-programming
ругается правильно, но сообщение об ошибке немного неточное:
Incorrect format. A different number of actual arguments is expected while calling 'Format' function. Expected: 4. Present: 4.Думаю правильнее «Expected: 5».
Экономия не «мышления», а «затрат», не надо подменять. И это не антропоцентризм — организмы, отличные от людей (и даже неживые механизмы) точно так же получают преимущество, если достигают результата с меньшими затратами энергии, времени и памяти.
Так что бритва Оккама вполне сводима к базовым законам природы.
В законе Украины не даётся какого либо специального определения термину «законное платёжное средство» (кроме утверждения, что это гривна, и что она обязательна к приёму). При этом имеется давняя мировая практика использования этого термина. На каком юридичесском основании украинская гривна в Украине является чем-то отличным от рубля в России или от доллара в США? На что ссылаться?
Термину «законное платёжное средство» (legal tender) уже не одна сотня лет, и означает он именно это: закон обязывает принимать данное средство к расчётам. Какой бы товар или услугу я не продавал, я всегда имею право потребовать оплаты гривной, а не золотом или шкурками енотов. Если кто-то хочет заплатить шкурками — я вправе принять шкурки (это не будет незаконно). Но если шкурки мне не нужны, то, по-закону, я вправе потребовать от покупателя обменять его шкурки на гривны и принести мне гривны, и покупатель не вправе отказать платить под предлогом «у меня нет гривен, только шкурки». Равно как покупатель может требовать приёма оплаты в гривнах, даже если я требую платить шкурками, долларами или биткойнами. Если мне нужны биткойны — я законом обязан принять гривны и обменять их на биткойны самостоятельно. Всю отчётность, соответсвенно, тоже должен вести в гривне.
В этом суть понятия legal tender. Украина изобрела своё понятие, отличное от общепринятого?
> Все остальное — незаконно.
Это означало бы, что пользоваться долларами тоже незаконно. Но это не так — вы можете спокойно оформить договор в гривне, но (при согласии сторон) заплатить долларами или шкурками енотов по курсу, и вас за это не посадят — несмотря на то, что доллары/шкурки, по-вашему, являются «незаконным платёжным средством».
> А «платежная организация» там тоже есть
«Платежная организация — юридическое лицо, являющееся владельцем или получило право на использование товарного и других знаков, ...»
Ну и какое юридическое лицо стоит за биткойном? Bitcoin Foundation Ukraine таковой, очевидно, не является — это страничка в фейсбуке, клуб по интересам, общественная инициатива — всё что угодно, а не платёжная организация, «определяющая правила пользования» биткойном и «обеспечивающая деятельность» биткойн-сети. Что он там определяет и обеспечивает?
> Технические детали исполнителей не интересуют. Кто сильнее, тот и прав.
Согласен, но это уже другая тема: не «нарушение закона путём выпуска незаконного платёжного средства», а «попрание закона путём его избирательного трактования и неправомерных действий правоохранительных органов». Или, например, «пробное искусственное обвинение для создания в будущем судебного прецедента и разрешения юридической коллизии». Или, как вы заметили выше, биткойн в данном случае лишь прикрытие, а обвинение совсем о другом — неуплата налогов, например.
Далее, в вашем законе есть определение «платёжной системы»: «1.29) платежная система — платежная организация, члены платежной системы и совокупность отношений, которые возникают между ними при проведении перевода средств.» Заметьте — в определении фигурирует платёжная организация.
Однако, за биткойном не стоит никакой организации, к которой можно предъявить незаконный выпуск платёжных средств. Майнеры не являются эмитентами биткойнов, потому что они не изготавливают их, а _получают_ от системы, как оплату за выполненную работу по расчёту хэш-сумм. Биткойны, можно сказать, «самозарождаются» природным способом, из математических свойств чисел, и эта «манна небесная», сыпящаяся с цифрового неба, распределяется специальным алгоритмом по участникам, согласно затраченной работе. И близко не похоже на эмиссию обычных денег или псевдо-валют.
https://ru.wikipedia.org/wiki/Законное_платёжное_средство
Например, ng-bind=«vm.text», {{vm.text}}, ng-bind="::vm.text", {{::vm.text}} — это всё односторонние связки (от модели к представлению, но не наоборот), но из них только две последних — одноразовые.