Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/55: Рейтинг темы: голосов - 55, средняя оценка - 4.82
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 18:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Забыли о чём говорим? Если в языке можно в рантайме сочинять сорцы и выполнять их - то в рантайм систему входит интерпретатор и это всё интерпретатор.
Ну а в runtime языка может входить компилятор и тогда сорцы можно компилировать в runtime. В этом нет ничего не обычного и в современных Lisp-ах всё именно так.

Добавлено через 5 минут
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
я точно не знаю что у Вас творится, по видимому компилируется в байт-код и к нему же лепится интерпретатор для eval.
Какой ещё байт-код, глаза-то протри, там же чистый asm под x86 записанный s-expr-ами.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2015, 18:22
Ответы с готовыми решениями:

Delphi !? Плюсы и минусы
Почему при поиске работы через Internet в странах Европы и Америки очень редко можно встретить необходимость в Delphi?

Студентская жизнь.Ее плюсы и минусы.
Студентская жизньпрекрасна...Так говорят.А как думаешь ты?

Что вы делаете необычное на форуме(плюсы и минусы)
что вы делаете на форуме не обычного? Ну не так как все... Вот пример: прежде чем ответить кому-либо, почему-то смотрю его профиль,...

262
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 18:24
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Пример в студию!
http://ideone.com/rAuOQh Я даже не могу представить, как это записать в этих ваших Хаскеллах. http://ideone.com/TbAT49

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Их аргументы конкретизированы - это списки, функции, а не произвольный а.
Это списки и функции произвольных типов. Вот и я хочу применить f к функции и кортежу произвольных типов.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 18:25
Цитата Сообщение от nullxdth Посмотреть сообщение
Какой ещё байт-код, глаза-то протри, там же чистый asm под x86 записанный s-expr-ами.
Что Вы так раскричались, как будто я не знаю что!?
Ну асм, признаю. Ошибся.
0
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 19:02
Цитата Сообщение от taras atavin Посмотреть сообщение
Или машинный код, или "Lisp-машина".
Я, наверное, не совсем корректно выразился. Давайте так, не Lisp-машина, а образ в памяти со всеми необходимыми инструментами для работы программ на Lisp. Runtime либа, короче говоря.

Добавлено через 6 минут
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Только префиксная нотация и отсутствие приоритета операций = плохая читаемость.
Для префиксной нотации не нужны приоритеты. На больших выражениях префиксная записать с отступами проще читается, чем инфиксная (ИМХО).

Добавлено через 4 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Наличие только префиксных операторов - хоть и не великая, но проблема, так как не всё удобно писать в таком синтаксисе. А несогласным место в Польше.
Да ссаная инфиксная запись добавляется в Lisp в пару десятков строк. http://folk.uio.no/jornv/infpre/infpre.html.
Но этим никто не пользуется, нафиг потому что не нужно. Здоровому человеку для того что бы читать префиксную записать нужно где-то минут 15 тренировки и всё.

Добавлено через 4 минуты
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Задумался. Существуют ли языки компилируемые в машинный код, но использующие GC ? Не припомню. С учётом ещё и динамической типизации, слабо верится что лисп в машкод компилируется.
И правильно задумался. Ты путаешься в элементарных вещах. GC, компиляция/интерпретация, типизация. Все эти вещи между самой почти не связаны.

Добавлено через 20 минут
Цитата Сообщение от castorsky Посмотреть сообщение
Ого сколько хаскелистов ненавидят лисп. Это похоже на тенденцию, однако.
Да обычное дело. Любой фанбой прочитавший пару страниц из какой-нибудь книжонке по Haskell, осветившись функциональной чистотой и строгостью типов, заводит известную шарманку -- "Haskell против всех".
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 19:07
korvin_, я, кстати, знаю почему автолисп - уродство. В нем банально нет let, локальные переменные/функции определяются так (defun foo ([args] [/ local-args])). Из-за этой мелочи плодятся тысячи локальных переменных и код на лиспе превращается в паскаль. На каком-то этапе разработчики посчитали что let-form не нужна, а лисп ничем не отличается от других языков. Такие печальные дела.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Впрочем, не важно. Лиспать я не буду. И так вокруг более полезных языков и пакетов для освоения полно.
Ну Вас никто не принуждает. Просто считают Ваши аргументы как минимум глупыми. Уже хотя бы тот факт что такой старый язык до сих пор активно живет и совсем не потому что тонны легаси у рационального человека должен возбудить интерес.
0
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 19:15
Цитата Сообщение от korvin_ Посмотреть сообщение
ClozureCL раньше PPC умел, как сейчас — не знаю.
И сейчас умеет. Ещё и ARM умеет.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 19:17
Цитата Сообщение от nullxdth Посмотреть сообщение
Да обычное дело. Любой фанбой прочитавший пару страниц из какой-нибудь книжонке по Haskell, осветившись функциональной чистотой и строгостью типов, заводит известную шарманку -- "Haskell против всех".
Ага, и при этом забывает что тотальная ленивость это вовсе не плюс, да и во всем хорошо "золотая середина".
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 19:29
Цитата Сообщение от nullxdth Посмотреть сообщение
Да ссаная инфиксная запись добавляется в Lisp в пару десятков строк. http://folk.uio.no/jornv/infpre/infpre.html.
Ну я то на лиспе не писал, а его квалификацию показывает не то, как он оценивает префиксную, а то, что он не знает про возможность добавить инфиксную.

Добавлено через 11 минут
Цитата Сообщение от nullxdth Посмотреть сообщение
Но этим никто не пользуется, нафиг потому что не нужно. Здоровому человеку для того что бы читать префиксную записать нужно где-то минут 15 тренировки и всё.
Да нет, это больному. Я читаю и префиксную и постфиксную вообще без тренировки. Но это не всегда удобно. Иногда инфиксное можно взять готовое из справочника, или вспомнить со школы. Тогда набрать инфиксное будет быстрей, чем заниматься преобразованиями. Или в команде есть "чистый" математик и выражение вывел именно он, а дал в инфиксной форме, или вывел сам, потом кто то умудрился нагрузить профессора математики проверкой и заняло это пару недель, тогда могут с непонятного перепугу вообще не доверить преобразования, а исходники видит вся команда. Ну ка кто здесь уверен в том, что удастся уговорить "чистого" математика изучить префиксную, или постфиксную нотацию, или что он её уже знает? Прогер то ладно обязан знать такие нотации. А "чистый" математик?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 19:37
Цитата Сообщение от castorsky Посмотреть сообщение
я, кстати, знаю почему автолисп - уродство. В нем банально нет let, локальные переменные/функции определяются так (defun foo ([args] [/ local-args])). Из-за этой мелочи плодятся тысячи локальных переменных и код на лиспе превращается в паскаль. На каком-то этапе разработчики посчитали что let-form не нужна, а лисп ничем не отличается от других языков. Такие печальные дела.
А макросов, чтоб сделать свой let там нет?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 19:47
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну я то на лиспе не писал, а его квалификацию показывает не то, как он оценивает префиксную, а то, что он не знает про возможность добавить инфиксную.
Опять глупости? Вы предлагаете переделывать язык ради тех, кто не может осилить обычную мелочь. Смешно же. Такая она Земля - круглая. Инфиксная нотация - такой же исторический парадокс как и десятичная сс. Оба являются не самыми удобными с точки зрения практики. Или скажем, зачем же это понадобилась Польская нотация если инфиксная вся такая замечательная? Постарайтесь объективно и глубоко вдуматься в этот вопрос.
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну ка кто здесь уверен в том, что удастся уговорить "чистого" математика изучить префиксную, или постфиксную нотацию, или что он её уже знает?
Вообще-то какой он математик если не знает? Очередная глупость.

Добавлено через 6 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
А макросов, чтоб сделать свой let там нет?
неа нету xD такой вот лисп без макросов
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 21:30
Цитата Сообщение от korvin_ Посмотреть сообщение
Я даже не могу представить, как это записать в этих ваших Хаскеллах
И я не представляю. Строгость языка такие вольности не подразумевает. В Вашу функцию можно только заглушки типа id передавать. Может существует какой то трюк, например, есть не рекомендованные к использованию Language Extensions, хотя, кажется и с ними не выйдет.
Цитата Сообщение от korvin_ Посмотреть сообщение
Это списки и функции произвольных типов. Вот и я хочу применить f к функции и кортежу произвольных типов.
Потому что не понимаете. В сигнатурах map, filter, указаны списки элементов неопределённого типа. Т.е. функции "знают" про эти аргументы только что они списки, и всё. И функции работают со списком, но никак не могут изменить или прочитать элемент списка. Для этого они вызывают переданные им функции, которые вызываются для элементов одного типа, потому что в списке могут быть элементы только одного типа, а не как у Вас, разные.
Цитата Сообщение от nullxdth Посмотреть сообщение
Для префиксной нотации не нужны приоритеты.
Ну, да? А в Haskell используются. И во всех других языках, где есть хотя бы унарные операторы - они то обычно префиксные. Просто в лиспе вместо приоритетов скобки. Так учебные интерпретаторы арифметических выражений пишут, без приоритетов, "a+(b*(c^d))" - и получается инфиксный лисп.
Цитата Сообщение от nullxdth Посмотреть сообщение
Ты путаешься в элементарных вещах. GC, компиляция/интерпретация, типизация. Все эти вещи между самой почти не связаны.
По смыслу нет. А реализацией связаны. В машинном коде GC и динамические типы накладно устроить. А байт код виртуального процессора подразумевает что это уже есть в самом таком процессоре, и накладок меньше. Если коротко - то так.
Цитата Сообщение от castorsky Посмотреть сообщение
я, кстати, знаю почему автолисп - уродство
Да где я говорил что он уродство? Но приоритеты в изучении нового у меня другие - не все ещё полезные пакеты Haskell-а освоил и даже не все его "фишки" с типами. На жабе я только для телефона писАл, а неплохо бы spring изучить. Для меня полезным может оказаться Erlang, и наверняка TypeScript. И много чего ещё. Вот если бы в мире программирования был бы только лисп ... вот тогда ... нуу ... а ещё я столярничать немного умею
0
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 21:42
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В машинном коде GC и динамические типы накладно устроить.
Хм. Почему это? Почему в байт-коде GC и динамические типы устроить можно, а в машинном нет? Какая разница-то?

Добавлено через 2 минуты
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Да где я говорил что он уродство?
Мы тебе говорим, что уродство. AutoLISP - не Lisp, а так, одно название. Ты же о Lisp-е судишь по AutoLISP-у и, прости Господи, по "неудобной" префиксной записи
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 21:52
Цитата Сообщение от nullxdth Посмотреть сообщение
Хм. Почему это? Почему в байт-коде GC и динамические типы устроить можно, а в машинном нет?
И в машинном можно. Но в машинном каждое обращение к "обёрнутой" переменной это не просто загрузить в регистр, а запихать несколько аргументов в стек и вызвать функцию. А в байт коде - команда байт кода которая всё это подразумевает, но она меньше, и по любому, что с динтипами, что с GC, что без, она одна и вызывает вызов функции. Т.е. код меньше распухает, раз. На фоне тормозов рантайм системы проверки типов не так заметны, два.
0
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 22:04
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А в байт коде - команда байт кода которая всё это подразумевает
Это только в том случае, если GC реализован на уровне виртуальной машины. Да и какая разница на каком он уровне реализован, накладные расходы на GC будут, естественно, в любом случае.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 22:08
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
потому что в списке могут быть элементы только одного типа, а не как у Вас, разные
Так только в haskell. Даже в сях void*.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Да где я говорил что он уродство?
Это вообще-то не Вам бло адресовано, а тому кто говорил. Но Вы тоже говорили, немного иначе про вообще лисп и не однажды. А я про haskell не говорю, потому что практика с ним поверхностная, хотя жесткий тайп чек лично меня очень бесит. Потому что __иногда надо сделать неочевидную вещь и это превращается в войну с компилятором. За монотиповость списков хацкеля я как бы вообще молчу. На кой ляд такие списки вообще нужны.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 22:30
Цитата Сообщение от castorsky Посмотреть сообщение
Так только в haskell. Даже в сях void*
Так в Haskell для его основной рабочей системы типов, под GC. Сами, понимаете, GC с указателями несовместимы. Но для работы с сишными функциями в Haskell есть и не GC-шное выделение памяти, и указатели data Ptr a, которые даже можно конвертировать в указатели на другой тип castPtr, естественно, прибавлять к ним целое plusPtr, записывать данные poke и даже прицепить к ним финализатор (обычно, тоже сишную ф-ию). Вобщем, как в си, только более громоздко.
Цитата Сообщение от castorsky Посмотреть сообщение
жесткий тайп чек лично меня очень бесит
А меня бесят динамические типы, отсутствие контроля, приведение по дефолту.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 22:53
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Сами, понимаете, GC с указателями несовместимы
это еще почему? В лиспе всё указатели и есть сборщик мусора.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А меня бесят динамические типы, отсутствие контроля, приведение по дефолту.
Опыт на делфи сказывается Собственно а по каким языкам Вы судите?
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 23:07
Цитата Сообщение от castorsky Посмотреть сообщение
это еще почему? В лиспе всё указатели и есть сборщик мусора.
Что то не то. GC должен иметь возможность перемещать данные. Если он у Вас и значение указателей смещает при этом, то, тогда эти указатели нельзя вычитать из др-др, и проч. Это если указатели как в си. А если у Вас так ссылки называются ...
Цитата Сообщение от castorsky Посмотреть сообщение
Собственно а по каким языкам Вы судите?
по js. Я на нём относительно мало пишу, но пишу. На VBA я всегда типы явно указываю. С Lua совсем мало дело имел, я его в свои проги встраиваю, когда заказчик хочет скриптовые возможности. С ним, кстати, прикол был. Сделал я (не один я) контроллер к одной установке, типа ЧПУ на Lua. Вначале я помогал, потом технолог циклы задавал. А потом прихожу - работяги (без высшего образования), обсуждают почему не так вышло и скрипт правят. Во, народный язык. Скрипты там простые конечно, но циклы и if-ы есть.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 23:18
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Строгость языка такие вольности не подразумевает.
Эти «вольности» не нарушают никакой строгости. Они просто невыразимы в Хаскелле.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
а не как у Вас, разные.
Ок, так и запишем: Хаскелл не умеет нормально работать с типами. А ведь в примере с show на этапе компиляции известно, что каждый тип элементов кортежа умеет Show и достаточно подставить нужные show.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В машинном коде GC и динамические типы накладно устроить. А байт код виртуального процессора подразумевает что это уже есть в самом таком процессоре, и накладок меньше
Фееричной глупости высказывание. Нет практически никакой разницы, более того, обычно она в пользу компиляции — на одну прослойку меньше.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Но в машинном каждое обращение к "обёрнутой" переменной это не просто загрузить в регистр, а запихать несколько аргументов в стек и вызвать функцию. А в байт коде ...
... то же самое, только сначала еще команду VM нужно интерпретировать.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Сами, понимаете, GC с указателями несовместимы
Разработчики Go смотрят на тебя с недоумением.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
приведение по дефолту
Кстати в нормальных ДТ-языках этого нет. Я же не зря написал, что JS и PHP — худшие представители жанра.

Добавлено через 6 минут
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
тогда эти указатели нельзя вычитать из др-др
Арифметика указателей — зло из зол. И не нужна, кстати.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А если у Вас так ссылки называются
Ссылками называются переменные, связанные с одним и тем же размещением. Ссылки почти только плюсах (void p(int &x) и паскале (procedure p(var x: Integer). Отличительная особенность — ссылочным переменным нельзя присвоить null/nullptr/nil, если только тип значения это не позволяет. Всё остальное — указатели, т.к. являются самостоятельными значениями, содержащими адрес размещения.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 23:25
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А если у Вас так ссылки называются ...
Это у Вас ссылки отдельно, указатели отдельно. На самом деле "ссылка" это даже не синтаксический, это лексический сахар, миф, матрица, сферический_конь_в_вакууме. По смыслу первое и второе есть одно и то же. В разных языках с этими объектами определены разные возможности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2015, 23:25

Какой язык веб-программирования выбрать? Плюсы\минусы
Вопрос что ни на есть из раздела священных, но все же... Какой язык веб-программирования кто предпочитает? У кого какие плюсы и...

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу предложить к рассмотрению: Cервер...

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но требуется грамотный взвешенный ответ. Вообще...

Плюсы и минусы
В массиве Z(m) найти число чередований знака, то есть число переходов с плюсов на минус или с минуса на плюс. Например, в...

Плюсы и минусы J2se
Ребята, такой вопрос... Какие преимущества есть у j2se перед другими языками? и почему изучают именно его , а не чтото другое? ведь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru