metaclass: (Default)
[personal profile] metaclass
Что-то мне мозг гложет мысль. Если у нас язык шаблонов C++ или там система типов хаскеля тьюринг-полные - это же не означает что мы можем реализовать произвольные действия на них. Т.е. например описать две строки, конкатенировать их и вывести в виде одной строки. Собственно говоря, и машина тьюринга этого не умеет, в оригинале. Только если к ней прикрутить интерпретатор выходных значений, который бы умел выводить строки, тогда по идее можно такое сделать, в виде программы для нее.

Date: 2010-01-05 07:08 pm (UTC)
From: [identity profile] migmit.vox.com (from livejournal.com)
Ну да. О чём я и говорю: никакое метапрограммирование не преодолевает фундаментальных недостатков нижележащего языка.

Date: 2010-01-05 08:24 pm (UTC)
From: [identity profile] a-lourier.livejournal.com
Тьюринг-полнота означает, что можно реализовать любую функцию f:N->N. Ни о каких устройствах ввода-вывода речь не идет.

Date: 2010-01-05 08:26 pm (UTC)
From: [identity profile] blacklion.livejournal.com
Ну, с любой вы погорячились :)

Date: 2010-01-05 09:01 pm (UTC)
From: [identity profile] a-lourier.livejournal.com
Ага, точно. Когда пересдача? :)
Следовало читать: "любую вычислимую функцию".

Date: 2010-01-06 02:44 am (UTC)
From: [identity profile] berezovsky.livejournal.com
а чем такая конкатенация не подходит
http://imgur.com/kXuFt.jpg

Date: 2010-01-06 07:03 am (UTC)
From: [identity profile] metaclass.livejournal.com
Тут роль устройства вывода играет то, что мы смотрим на ленту, по идее.

Date: 2010-01-06 10:52 am (UTC)
From: [identity profile] alexey-rom.livejournal.com
Вывода нет. Но мы можем в каком-то формате (возможно, жутко неудобном) описать две строки и вычислить результат их конкатенации в том же формате.

Date: 2010-01-06 10:58 am (UTC)
From: [identity profile] oxij.livejournal.com
Имхо, Тьюринг-полнота означает, что можно сделать что-то эквивалентное этому «описать две строки, конкатенировать их и вывести в виде одной строки». А как там интерпретировать полученный результат — дело другое.

И ещё я сомневаюсь, что хаскелевская система типов Тьюринг-полна, ибо что-то мне подсказывает, что вывод типов можно свести к задаче останова.

Date: 2010-01-09 09:38 am (UTC)
From: [identity profile] nivanych.livejournal.com
> Если у нас язык шаблонов C++ или там
> система типов хаскеля тьюринг-полные -
> это же не означает что мы можем
> реализовать произвольные действия на них

Ну, SKI-комбинаторы можем сделать.
А значит, любые вычисления.
Но практически этим пользоваться крайне неудобно,
либо даже невозможно -- компилятор загнётся.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 27th, 2025 01:29 pm
Powered by Dreamwidth Studios