LaTeX가 Turing 완료라고 들었습니다. LaTeX로 작성된 프로그램이 있습니까?


79

일반적으로 조판 언어로 생각되는 것으로 흥미로운 일을 할 수 있습니다. 예를 들어, Mandelbrot 세트를 구성 할 수 있습니다. postscript를 사용하여 을 .

이 MathOverflow 질문 에서 LaTeX가 Turing-complete 일 수 있음을 제안 합니다. 이것은 임의의 프로그램을 작성할 수있는 능력을 의미합니다 (쉽지 않을 수도 있습니다!). LaTeX에서 그러한 프로그램의 구체적인 예를 아는 사람이 있습니까?


88
알다시피, 주말에 밖에서 놀려고 했어요. 주말에 컴퓨터를 사용하지 않는 사람 중 하나? 그런 다음 가서이 질문을 게시합니다. 이것이 내가 좋은 것을 가질 수없는 이유입니다.
wheaties 2010-06-03

1
/ d {def} def / u {dup} d [0 -185 u 0 300 u] concat / q 5e-3 d / m {mul} d / z {A um B um} d / r {rlineto} d / X -2 q 1 {d / Y -2 q 2 {d / A 0 d / B 0 d 64-1 1 {/ f exch d / BA / A z sub X add d B 2 mm Y add dz add 4 gt {exit} if / f 64 d} for f 64 div setgray XY moveto 0 q neg u 0 0 qu 0 rrrr fill / Y} for / X} for showpage
DNA

답변:


84

The Monad Reader 13 호 에서 Stephen Hicks는 매크로를 많이 사용하여 TeX의 ICFP 대회 (화성 탐사선 내비게이션 포함)에 대한 솔루션 구현에 대해 썼습니다. 흥미롭게도 조판시 솔루션의 출력은 로버 경로의 포스트 스크립트 맵입니다.



10

pgfmath라이브러리는 아직도 저를 깜짝 놀라게한다. 그러나 좀 더 튜링 관련 메모에서 : http://en.literateprograms.org/Turing_machine_simulator_(LaTeX)에 따라 TeX에서 실제 튜링 머신을 작성할 수 있습니다 . . TeX에서 확장을 사용하는 멋진 방법입니다.

PostScript는 Turing도 완벽 합니다. 매뉴얼 을 읽으면 그것의 일반적인 프로그래밍 기능에 놀라게 될 것입니다 (적어도 저는 그렇습니다).


1
사람들은 PostScript로 LISP를 작성했습니다. (그런 구조의 이상한 아름다움을 완전히 파악할 때까지 앞 문장을 읽으십시오).
new123456 2011 년

언급 된 PLRM 설명서는 이제 죽은 링크입니다,이 대신하려고 adobe.com/products/postscript/pdfs/PLRM.pdf
아론 롭슨


6

이것이 프로그래밍 자체에 해당하는지 확실하지 않지만 최근 LaTeX에서 Object Oriented와 같은 작업을 시작했습니다. (다음을 따르기 위해 수학을 알 필요는 없습니다.) 최근 논문에서 저는 객체형태 를 가진 범주 에 대해 글을 썼습니다 . 그 중 상당수가 있었기 때문에 𝒞은 전형적인 객체 C 와 전형적인 모피 즘 c 가있는 카테고리가되도록 일관된 스타일을 원했습니다 . 그런 다음 D 와 함께 𝒟d. 그래서 저는 "클래스"를 정의하고 "카테고리"라고 말하고 (그 농담을 이해하려면 수학자 여야 함) C가이 클래스의 인스턴스임을 선언 한 다음 \ ccat, \ cobj, \ cmor에 액세스 할 수 있습니다. 기타 등등. \ cat {c}, \ obj {c}, \ mor {c} 등을하지 않는 이유는 때때로 이러한 범주에 특별한 이름이 있기 때문에 인스턴스를 선언 한 후 이름을 매우 쉽게 수정할 수 있기 때문입니다. (단순히 \ ccat을 재정의하십시오. \ ccat은 수학 모드에서 \ mathccat을 선택하고 텍스트 모드에서 \ textccat을 선택하는 래퍼이기 때문에 실제로 \ mathccat입니다). (물론 위의 제안보다 조금 더 복잡하고 OO 항목은 새 카테고리를 이전 카테고리의 변형으로 정의하고 싶을 때 정말 유용합니다 (이전 카테고리가 아닌 경우도 처리 할 수 ​​있습니다). 아직 존재하지 않습니다.).)

실제 프로그래밍으로 인정되지는 않지만 논문에서 사용하고 있으며 유용하다고 생각합니다. 다른 답변 (지금까지)은 실제 문제에 대한 합리적인 솔루션보다 LaTeX의 기능을 과시하는 느낌이 더 많습니다.


이 일을 어떻게하고 있는지보고 싶습니다!
Nate Stemen

1

LaTeX에서 ACM 콘테스트 문제 에 대한 답을 쓴 사람을 알고 있습니다.


흠 ... 안타깝게도 코드가 주변에 있지 않고 코드를 작성한 사람과 연락이 끊겼습니다. : /
Amber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.