> в классической МТ такая задача не может существовать.
Да. Так же как на bash, например, не может существовать задача «записать такое-то 4-байтное слово по такому-то адресу в памяти». Об этом я, блин, и говорю; возможности языка — это не только то, какие *вычислительные* задачи на нем теоретически можно решить.
извините меня, в классической МТ такая задача не может существовать.
Вы же не будете писать на лиспе программу, которая, например, будет чистить картошку или убираться в квартире…
Владимир, выходит, помимо самой машины тьюринга нужна еще среда, которая будет соответствующим образом интерпретировать ее ленту. Одной машины в ее каноническом определении недостаточно.
Так можно договориться до того, что на языке .bat-файлов, дескать, можно написать умножение матриц, потому что можно из .bat-файла вызвать программу для умножения матриц. Или, там, записать одну матрицу в один файл, другую в другой, а в третий записать слово "умножь" и дождаться, пока внешняя среда это не проинтерпретирует.
Короче, это демагогия. Выразительность языка в теории и на практике – это разные вещи.
интерпретировать память как полубесконечную ленту. перемещение управляющего устройства = сдвиг на определённый кластер памяти. изменение состояния ячейки = запись какого-то значения в текущий кластер. интерпретировать имя файла, как команду "поместить управляющее устройство на определённый участок ленты". интерпретировать "записать в файл значение A" как "записать в текущий кластер первые n бит значения A (n зависит от размера кластера), если записали не всё A, то перейти в соседний кластер и записать следующие n бит, и так пока не запишем А до конца"
> Николай, а для лямбда-исчисления тогда хаскелл нужен?
Ну… эм… Лиспом можно вполне обойтись) если вам не нужно типизированное лямбдасчисление, конечно…
#15 – я первый раз такой термин встречаю. Поэтому и спросил у знатока…
#16 Совершенно согласен! Но все же зависит от задач… Да и системы лисповские нунче мощные, все можно написать…
Полный по Тьюрингу означает, что лисп с математической точки зрения – эквивалентен машине Тьюринга. Как и все остальные языки программирования.Более мощного инструмента пока не изобрели. И на машине Тьюринга можно реализовать все, что можно реализовать на любом язвке программирования. Только сделать это СЛОЖНО (трудно). Система команд слишком проста.
То, что он полный по тьюрингу, означает лишь то, что с его помощью можно реализовать как минимум все то же, что и с помощью машины тьюринга. Насколько мне известно, машина тьюринга не включает в себя никаких API, кроме, так сказать, весьма скромного API текстового ввода-вывода. В пределах такого API можно писать лишь весьма скромный класс программ.
Лисп – это язык, который дал существенный толчок программированию задач из искусственного интеллекта. Есть прекраксный двухтомник двух финнов – Мир Лиспа называется. Там подробно написано, что данные и программы представляются одинаково. Это первый язык (из мировых известных), на которым можно было написать "самоисполнитель". То есть сначала программа формируется динамически, а потом тут же исполняется.
Это было еще в 1960 году.
Кроме того, это первый из известных языков со сборкой мусора…
«Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list.» — Kent Pitman
29 января 2010 в 12:01
> в классической МТ такая задача не может существовать.
Да. Так же как на bash, например, не может существовать задача «записать такое-то 4-байтное слово по такому-то адресу в памяти». Об этом я, блин, и говорю; возможности языка — это не только то, какие *вычислительные* задачи на нем теоретически можно решить.
28 января 2010 в 21:01
а чё неплохая идея ))
28 января 2010 в 20:04
извините меня, в классической МТ такая задача не может существовать.
Вы же не будете писать на лиспе программу, которая, например, будет чистить картошку или убираться в квартире…
28 января 2010 в 8:01
Владимир, выходит, помимо самой машины тьюринга нужна еще среда, которая будет соответствующим образом интерпретировать ее ленту. Одной машины в ее каноническом определении недостаточно.
28 января 2010 в 8:01
Так можно договориться до того, что на языке .bat-файлов, дескать, можно написать умножение матриц, потому что можно из .bat-файла вызвать программу для умножения матриц. Или, там, записать одну матрицу в один файл, другую в другой, а в третий записать слово "умножь" и дождаться, пока внешняя среда это не проинтерпретирует.
Короче, это демагогия. Выразительность языка в теории и на практике – это разные вещи.
27 января 2010 в 22:05
интерпретировать память как полубесконечную ленту. перемещение управляющего устройства = сдвиг на определённый кластер памяти. изменение состояния ячейки = запись какого-то значения в текущий кластер. интерпретировать имя файла, как команду "поместить управляющее устройство на определённый участок ленты". интерпретировать "записать в файл значение A" как "записать в текущий кластер первые n бит значения A (n зависит от размера кластера), если записали не всё A, то перейти в соседний кластер и записать следующие n бит, и так пока не запишем А до конца"
27 января 2010 в 11:05
>И на машине Тьюринга можно реализовать все
Ну-ка, как реализовать с помощью машины тьюринга вывод цифры "1" в файл /home/jkff/output.txt ?
27 января 2010 в 0:05
> Николай, а для лямбда-исчисления тогда хаскелл нужен?
Ну… эм… Лиспом можно вполне обойтись) если вам не нужно типизированное лямбдасчисление, конечно…
27 января 2010 в 0:00
#15 – я первый раз такой термин встречаю. Поэтому и спросил у знатока…
#16 Совершенно согласен! Но все же зависит от задач… Да и системы лисповские нунче мощные, все можно написать…
26 января 2010 в 23:05
Николай, а для лямбда-исчисления тогда хаскелл нужен?
26 января 2010 в 23:03
А что такое брейнфак?
26 января 2010 в 23:03
брейнфак – эзотерический ЯП, почему я должен за тебя это гуглить?
26 января 2010 в 23:03
На лиспе не нужно писать программы) Лисп нужен для того чтобы наслаждаться его красотой! )
26 января 2010 в 23:02
Полный по Тьюрингу означает, что лисп с математической точки зрения – эквивалентен машине Тьюринга. Как и все остальные языки программирования.Более мощного инструмента пока не изобрели. И на машине Тьюринга можно реализовать все, что можно реализовать на любом язвке программирования. Только сделать это СЛОЖНО (трудно). Система команд слишком проста.
26 января 2010 в 23:02
^
чтд
26 января 2010 в 23:02
брейнфак тоже, если помните, полный по тьюрингу
26 января 2010 в 19:00
То, что он полный по тьюрингу, означает лишь то, что с его помощью можно реализовать как минимум все то же, что и с помощью машины тьюринга. Насколько мне известно, машина тьюринга не включает в себя никаких API, кроме, так сказать, весьма скромного API текстового ввода-вывода. В пределах такого API можно писать лишь весьма скромный класс программ.
26 января 2010 в 18:03
> любые, он же полный по тюрингу
Зашибись аргумент. Сам-то понимаешь, почему он неверен?
26 января 2010 в 18:03
нет
26 января 2010 в 17:03
любые, он же полный по тюрингу
26 января 2010 в 17:03
почитай например статью //lisper.ru/pcl/introduction-why-lisp
26 января 2010 в 8:05
Лисп – это язык, который дал существенный толчок программированию задач из искусственного интеллекта. Есть прекраксный двухтомник двух финнов – Мир Лиспа называется. Там подробно написано, что данные и программы представляются одинаково. Это первый язык (из мировых известных), на которым можно было написать "самоисполнитель". То есть сначала программа формируется динамически, а потом тут же исполняется.
Это было еще в 1960 году.
Кроме того, это первый из известных языков со сборкой мусора…
25 января 2010 в 21:05
Лисп это просто один большой хитрый калькулятор
25 января 2010 в 12:04
«Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list.» — Kent Pitman
25 января 2010 в 12:04
//stackoverflow.com/questions/172798/lisp-in-th...