Подходит ли Haskell для квантовых вычислений?
Я только что прочитал статью о квантовой физике. Одна интересная вещь заключается в том, что, по мнению программиста на Haskell, между этими двумя полями есть некоторые сходства.
Прежде всего, измерение в квантовом мире похоже на ленивую оценку в Хаскеле: если вы не измеряете, вы не знаете, жива ли кошка или мертва. Если вы не оцениваете, вы не знаете, определено ли значение или undefined
,
Во-вторых, в кванте мы имеем парадокс ЭПР, который можно объяснить взаимодействием со скоростью, превышающей скорость света, или, что то же самое, машиной времени. В Haskell, как мы видели в Assembly: Циркулярное программирование с использованием Recursive do -Monad.Reader, выпуск 6, мы можем получить доступ к значению, полученному в будущем, с помощью рекурсивного метода. do
,
Наконец, в кванте мы должны различать наблюдаемый мир, в котором энтропия никогда не уменьшается, и "чистый" квантовый мир, в котором время эквивалентно в обоих направлениях. В Хаскеле у нас есть IO()
мир, который описывает то, что на самом деле делает программа, и чистый функциональный мир, который никогда не имеет побочных эффектов, и значения никогда не зависят от порядка оценки.
Таким образом, я предполагаю, что приведенные выше факты предполагают наличие некоторых взаимосвязей между этими двумя полями. Может ли это иметь более интересные последствия? Например, хотя я говорил о парадоксе EPR, я не знаю, как создать программу на Haskell для имитации этого: функция создает два значения, и последующая оценка одного из них повлияет на другое (я думаю, что эти значения должны иметь IO()
типы, но я не знаю, как их собрать).
1 ответ
Haskell уже давно используется в качестве квантового языка программирования.
Основной точкой отсчета будет Quipper DSL в Haskell.
И еще больше забавных вещей - http://www.kurzweilai.net/quipper-language-makes-quantum-computers-easier-to-program