Программируемый калькулятор

nafanja
vasek
например 2 + 2 запишется как (+ 2 2)
чем второй вариант лучше первого?
в принципе научиться думать таким макаром можно, но зачем?...
инфиксная нотация естественнее для человека.
Инфиксная нотация естественна только для 2-местных функций. Однако для min и max она почему-то не используется. В Lisp синтаксис более регулярен, то есть он одинаков для функций с любым количеством мест. Поэтому проще расширять язык. Конечно, это важно только в том случае, если надо расширять язык.
vasek, я вообще то имел ввиду синтаксис и семантику языка, а не его тех. аспекты и специализацию.
ладно, проехали...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
я вообще то имел ввиду синтаксис и семантику языка
Я считаю так - кто к чему привык ..... для меня скобки нагляднее, видна законченность выражения, но это субъективное мнение.
Есть у меня знакомый, который везде в своих программах (на каком бы языке он не писал) где можно сует Assembler ....... и спорить с ним бесполезно. Как то писал он на заказ одно приложение на delphi и понапихал кучу кода на Assembler .... и как его не убеждали переписать - отказался (считает так намного быстрее), готов был вернуть даже обратно деньги ...
Ошибки не исчезают с опытом - они просто умнеют
beroal
программируемый бульбулятор :-)
ну где еще можно отвести душу и поболтать старику ...
Ошибки не исчезают с опытом - они просто умнеют
beroal, человеко понятностью пожертвуем в пользу простого алгоритма лексического разбора?

>>> min(2, 3, 1) + 5
6
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja, почти одно и то же
[1]> (+ (min 2 3 1) 5)
6
PS ... усложним, добавим комплексные числа
[2]> (+ (min 2 3 1) #C(5 0))
6
[3]> (+ (min 2 3 1) #C(5 1))
#C(6 1)
Ошибки не исчезают с опытом - они просто умнеют
nafanja
beroal, человеко понятностью пожертвуем в пользу простого алгоритма лексического разбора?
Понятность — результат учёбы и практики, то есть она субъективна. Поэтому я стараюсь ничего не обосновывать понятностью. Поэтому разговор окончен.
nafanja
min(2, 3, 1) + 5
Я имел в виду 2-местный min.
vasek
PS ... усложним, добавим комплексные числа
да и тут тоже самое
>>> min(2, 3, 1) + complex(5, 0)
(6+0j)
>>> min(2, 3, 1) + complex(5, 1)
(6+1j)
или даже так
>>> min(2, 3, 1) + 5+1j
(6+1j)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
vasek
UPD .... в кругу программистов lisp бытует высказывание .... никого не хочу обидеть, это просто высказывание, с которым лично я не согласен
Иерархия программистов
Сам себя не похвалишь...
nafanja
чем второй вариант лучше первого?
Гарантия того что приоритет операторов будет именно таким. Если брать к примеру a && b || c (можно подставить что-то своё), то можно малость перепутать, а некоторые не любят ставить как им кажется лишние скобки и резальтат отличается от того что хотим.
это примерно как
if(a > b)
  if(b > c) {...}
else {...}
Несколько не очевидно на первый взгляд где тут закраласть ошибка.
nafanja
инфиксная нотация естественнее для человека.
Не естественнее, а привычнее. А привычнее только по тому что так решило общество. А раз так решило общество, то значит навязано.

vasek
а насчет lisp ..... этот язык не из простых ... и в то же время он может обрабатывать любые типы даже себя самого .... а потому это единстаенный пока язык, который принят на вооружение для разработки искусственного интелекта ..... кстати, известный всем автокад написан на lisp ....
И как лисп будет чувствовать себя при работе с байтами? И да, какая разница на чём писать ии? С нейронными сетями можно работать хоть на js хоть на си, а repl и eval доступны не только на лиспе. Я видел repl для rust, знаю что код на go, vala можно запускать примерно как код на питоне - компиляция и выполнение произойдёт в одной команде.

vasek
Я считаю так - кто к чему привык ..... для меня скобки нагляднее, видна законченность выражения, но это субъективное мнение.
Есть у меня знакомый, который везде в своих программах (на каком бы языке он не писал) где можно сует Assembler ....... и спорить с ним бесполезно. Как то писал он на заказ одно приложение на delphi и понапихал кучу кода на Assembler .... и как его не убеждали переписать - отказался (считает так намного быстрее), готов был вернуть даже обратно деньги ...
Интересно, как легко он согласился бы писать код для веб страниц, например небольшой модуль который дополнит функциональность? И неужели он до сих пор не понял что компиляторы достаточно умны?
Мало видеть нам начало - надо видеть и конец.
Если видишь ты создание - значит где-то есть ТВОРЕЦ
и лисп и vb позволяют во время исполнения менять исходный код приложения. Интересно, как сложно на таком языке добится поведения как фантом ос: состояние приложения сохраняется, а потом приложение восстанавливается, возможно даже на другом пк?
Мало видеть нам начало - надо видеть и конец.
Если видишь ты создание - значит где-то есть ТВОРЕЦ
 
Зарегистрироваться или войдите чтобы оставить сообщение.