2013-08-27 17 views
21

Właśnie przeczytałem artykuł mówiący o fizyce kwantowej. Ciekawe jest to, że w widoku programisty Haskella istnieją pewne podobieństwa między tymi dwoma polami.Czy Haskell nadaje się do obliczeń kwantowych?

Po pierwsze, pomiar w świecie kwantowym wydaje się podobny do leniwej oceny w Haskell: jeśli nie mierzysz, nie wiesz, czy kot żyje, czy nie. Jeśli nie oceniasz, nie wiesz, czy wartość jest zdefiniowana, czy undefined.

Po drugie, w kwantowej wersji mamy EPR paradox, co można wytłumaczyć interakcjami z prędkością wyższą niż światło lub równoważnie z wehikułem czasu. W Haskell, jak widzieliśmy w Assembly: Circular Programming with Recursive do -Monad.Reader issue 6, możemy uzyskać dostęp do wartości pochodzącej z przyszłości za pomocą rekursywnego do.

Wreszcie, w kwantach musimy odróżnić obserwowalny świat, w którym entropia nigdy nie zmniejsza się, oraz "czysty" świat kwantowy, w którym czas jest równoważny w obu kierunkach. W Haskell mamy świat IO(), który opisuje, co program faktycznie robi, i czysty świat funkcjonalny, który nigdy nie ma skutków ubocznych, a wartości nigdy nie zależą od kolejności oceny.

Sądzę, że powyższe fakty sugerują, że istnieją pewne połączenia między tymi dwoma polami. Czy to może mieć bardziej interesujące konsekwencje? Na przykład, chociaż mówiłem o paradoksie EPR, nie wiem jak stworzyć program Haskella do symulacji tego: funkcja tworzy dwie wartości, a późniejsza ocena jednego z nich wpłynie na drugą (myślę, że te wartości muszą mają typy IO(), ale nie wiem jak je połączyć).

+3

Język komputerowy składa się z ponad koncepcji teoretycznej. Nawet jeśli dwa pojęcia są (lub wydają się podobne), nie muszą mieć nic wspólnego z tym, czy jeden pasuje do drugiego w jakikolwiek użyteczny sposób. –

+7

Używanie zwrotu "wehikuł czasu" sugeruje, że nie do końca zrozumiałeś paradoks EPR. Wyjątkowo jasne wyjaśnienie znajduje się w artykule Mermin: http://theorie.physik.uni-konstanz.de/juan/pub/IsTheMoonThere_PhyToday38no4p38.pdf. – idontgetoutmuch

+2

Wszystkie te analogie są ... cóż, heurystyczne i szczerze mówiąc po prostu złe. Ale to wciąż dobre pytanie. – leftaroundabout

Odpowiedz

25

Haskell jest od dawna używany jako język programowania kwantowego.

Podstawowym punktem odniesienia będzie Quiler DSL w Haskell.

i bardziej zabawne rzeczy - http://www.kurzweilai.net/quipper-language-makes-quantum-computers-easier-to-program

+6

Zobacz także Amr Sabry's Modeling _Quantum Computing in Haskell_ - http://www.cs.indiana.edu/~sabry/papers/quantum.pdf oraz _ Structure and Interpretation of Quantum Mechanics autorstwa Jerzego Karczmarczuka_ - https: //karczmarczuk.users.greyc .fr/arpap/hasiqm.pdf. Obie pojawiły się na warsztacie Haskell w 2003 roku. –

+0

Dzięki, czy możesz wyjaśnić nieco więcej o prostym programie 'teleport', który pojawia się w twoim ostatecznym odnośniku? Wygląda bardzo interesująco. –

Powiązane problemy