2 차원 프로그래밍 언어로 골프를 치는 데 도움이되는 일반적인 팁은 무엇입니까? 코드 골프 문제에 적용 할 수 있고 2D 프로그래밍 언어에만 적용되는 팁을 찾고 있지만 한 언어에만 국한되지는 않습니다 ( "댓글 제거"및 " M
작업 사용"과 같은 응답 은 답변이 아님).
답변 당 하나의 팁을 게시하십시오.
2 차원 프로그래밍 언어로 골프를 치는 데 도움이되는 일반적인 팁은 무엇입니까? 코드 골프 문제에 적용 할 수 있고 2D 프로그래밍 언어에만 적용되는 팁을 찾고 있지만 한 언어에만 국한되지는 않습니다 ( "댓글 제거"및 " M
작업 사용"과 같은 응답 은 답변이 아님).
답변 당 하나의 팁을 게시하십시오.
답변:
일반적으로 한 줄에 간단한 프로그램을 작성할 수 있습니다. 예를 들어, 고전 고양이 프로그램은 다음과 같습니다.
>iv
^o<
그러나 래핑 동작을 남용하고 이것을 만들 수 있습니다.
io
또는 이러한 래핑 동작이없는 언어로 :
> ?oi<
(가정 ?
팝업하지 않습니다.) 비 포장 언어의 경우, 명시 적 루프가 나은 경우가 많습니다.
점프 및 조건부 점프 명령이있는 2D 언어에서 프로그램은 다음과 같습니다.
abc >de?v;
^hgf<
이것은 또한 될 수 있습니다 :
abc de?!;hgf04&
( !
트램폴린이고 &
위치로 점프하는 경우)
ioiioiioi
않습니까?
io;
해야할지 모르겠 으며, 내가 아는 것은 ?
터지지 않습니다. 이것들은 물고기 명령처럼 보이지만 나는 그것이 표준이라고 생각하지 않습니다.
만들 수있는 2D가 적을수록 좋습니다. 캐리지 리턴은 또 하나의 비 작동입니다. @ATaco 및 @ASCII 전용 팁을 무시하지 말고 Y 치수를 가능한 작게 유지하십시오.
이
###
####
########
~보다 낫다
###
###
###
##
#
#
#
#
\n
(줄 바꿈)은 POSIX 시스템에서 왼쪽 정렬 텍스트에 정기적으로 사용되는 줄 끝입니다. Windows 및 Mac OS (mac 이전 버전)는 \n
(줄 바꿈)과 \r
(캐리지 리턴)의 조합을 사용 합니다.
다음은 언어의 특성에 따라 특정 작업을 수행하는 몇 가지 "이디엄"입니다.
동적 코드 생성이 필요한 경우 의사 선형 코드 모델을 사용하는 것이 좋습니다.
v
\"line 1"
\"line 2"
.
.
\"line N"
그들이 일반적으로하는 것을 가정 \
하고 v
의미합니다.
거의 모든 2D 언어에서 ><
무한하고 깨지지 않는 루프입니다. 어떤 이유로 든이 작업을 수행 해야하는 경우이 방법이 멋지더라도 이것이 가장 좋은 방법입니다.
>v
^<
당신이 경우에 실제로, 1 라이너를 코드를 만들어 , 당신은 사용할 수 ^
또는 v
같은 :
i?vo;
이렇게 v
하면 IP가 자동으로 전송됩니다. 방향성 명령이 일련의 (상대적) no-ops를 가리키는 모든 경우에이 방법을 계속 사용할 수 있습니다.
일반적으로 문자열 / 인용 프레임 워크가있는 언어는 다음과 같이 quine을 가질 수 있습니다.
<quote><generate "><output stack><terminate>
> <>의 경우 다음과 같습니다.
":1-r>o<#
이것을 제외하고 종료 오류로 종료됩니다. 아마도 가장 짧은 > <> quine 또는 적어도 내가 찾은 가장 짧은 것입니다.
<
>을 <> quine의를?
"
끝이 잘못된쪽에 있습니다. 팁은 그렇지 않으면 좋습니다. 저는 일반적인 답변을 많은 답변에 사용했습니다