M → 팁 , 4 바이트
Ṅ×ịß
온라인으로 사용해보십시오!
TIO 링크는 Esolang 페이지에 표시된 예제 팁 프로그램을 사용하여 함수를 호출하는 바닥 글을 추가합니다 (M의 "자동 래퍼"는 프로그램이 합리적이거나 고정 소수점 숫자를 처리 할 수 없거나 적어도 내가 가지고있는 것처럼 함수를 호출 함) 방법을 알려주는 방법을 알지 못했기 때문에 함수를 직접 실행할 수 있도록 전체 프로그램으로 기능을 만들어야합니다.)
실제로 유용한 디버그 출력을 인쇄합니다. 정확히 3 개의 다이아 드로 구성된 프로그램이 파서에서 특수한 경우를 트리거하기 때문에 프로그램을 M에서 3 바이트로 쓸 수 없으므로 특수한 경우를 피하기 위해 추가 명령을 추가해야했습니다. 그것을 만들기 Ṅ
이상 (개행 문자로 인쇄하는) 그것에게 유용한 목적을 제공합니다.
ı
i=−1−−−√
정지 / 정지 이외의 I / O를 구현하지 않습니다. I / O는 언어 자체의 일부가 아닌 Tip의 확장이며 Turing-completeness에는 필요하지 않습니다.
설명 / 배경
Ṅ×ịß
Ṅ Print {the left argument} and a newline; also resolves a parser ambiguity
ị {The left argument}th element of {the right argument}, wrapping on OoB
× Multiply {the left argument} by {the chosen element}
ß Recursive call; arguments: {the product} and {the same right argument}
[1,2,3]
[1,2,3,1,2,3,1,2,3,…]
rx+s는 다항식이며 많은 골프 언어에 내장 된 "기본 변환"은 실제로 가장 일반적인 다항식 평가자입니다. 그래서 우리가해야 할 일은 숫자 목록으로 색인을 작성하고, 그것들을베이스 변환하는 것입니다.
xx
ḅ
x⊕(x⊗y)x⊗y⊕. 물론, 우리는 체인 동작을 우리가 원하는 거의 모든 것으로 재정의 할 수는 있지만 전체 바이트가 필요 하며이 질문에 대한 골프 언어 항목이 너무 짧아서 바이트가 많이 있습니다.
그래서 나는 뒤돌아보고 약간 재평가했다. 다항식 평가 대신 사용할 수있는 작업이 있습니까? 이상적으로는 정식적인 것이므로 인수 순서에 대해 걱정할 필요가 없습니까? 그 후 곧 Collatz 기능이 필요 이상으로 복잡하다는 것을 깨달았습니다.
s
그리고 물론, 달리 기본 변환 ( ḅ
), 곱하기 ( ×
) 교환 법칙이 성립하고, 따라서이 인수에 배치 주문할 중요하지 않습니다. 그래서 우리 모두입니다 작성해야 ×ị
다음과 무한 재귀으로 프로그램을 배치 ß
, 그리고 튜링 완료 언어가 있습니다. 권리?
(x⊙y)⊕(x⊗y)¹×ịß
¹
¹
Ṅ
유용한 디버그 출력을 생성하기 때문에 좋은 선택입니다.
3 바이트가 가능합니까? 구현 및 구현 언어 의이 특정 선택이 아닌 무언가를 놓치지 않는 한,이 시점에서 어떻게 든 가능할 것 같습니다. 구현할 수있는 언어
eval
솔루션 을 방지하기 위해 구현 된 언어가이를 구현하는 데 사용하는 언어와 달라야한다는 규칙을 권장합니다 .