태그 보관물: code-golf

code-golf

Jolf에서의 골프 팁 만든 절차적인 골프

Jolf 는 @ CᴏɴᴏʀO’Bʀɪᴇɴ가 만든 절차적인 골프 언어입니다.

Jolf에서 골프를 즐기기위한 팁이 있습니까?

답변 당 하나의 팁을 게시하십시오.

이 팁은 적어도 Jolf에 대해 다소 구체적이어야합니다. 예를 들어 주석 제거는 답이지만 아주 좋은 것은 아닙니다.



답변

자바 스크립트 폴백

이상한 이유로 Jolf가 충분하지 않거나 단순히 대처할 수없는 경우 JavaScript eval을 사용하는 것이 유용 할 수 있습니다. 이것은 두 가지 방법 중 하나로 발생할 수 있습니다.

1. 설계 평가

내부의 모든 $...$것은 문자 그대로 JS 트랜스 필 레이션으로 전달됩니다. 예를 들어로 +3$~$5번역합니다 add(3, ~5). 마찬가지로 +3:~5.

2. 배열 평가

Jolf에서 JS 배열을 사용할 수 있습니다! 대개. 일종의 버그이지만 수정하지는 않겠습니다. 예를 들면 다음과 같습니다.

u[3*5,5/6,(3+4)/5]

다음으로 번역 :

sum([2 * 3, 5 / 3, (3 + 4) / 5]);

답변

자동 할당 변수를 알고 있어야합니다!

Jolf에는 변수를 “자동 할당”하는 여러 가지 방법이 있습니다. 표준은 γ입니다. 다음 표현식의 값을받습니다. Β동일하지만 다음 표현식을 숫자로 변환합니다.

또한, ζ(zeta)는 -1/12(이유를 추측 하여) 초기화 된 변수 이며 Ζ(Zeta) 로 재 할당 할 수 있습니다 .

예를 들어, I(입력 문자열)과 그 자체의 연산 을 비교하려고한다고 가정 해 봅시다 . 지금은 if를 보자 I + I = reverse(I + I). 이것은 일반적으로 다음과 같이 작성됩니다.

=+II_+II

그러나 이것은 다음으로 골프화 될 수 있습니다.

=γ+II_γ

답변

사용하다 @

@소스 코드에서 다음 문자를 가져와 해당 문자의 코드 포인트를 반환하는 명령입니다. (예를 들어, @X88을 반환합니다.) 이것은 0에서 255 사이의 숫자를 2 바이트로 표현할 수 있기 때문에 매우 유용합니다.


답변

소스를 읽으십시오

현재로서는 문서화되지 않은 것들이 많이 m있습니다. 그중 신비로운 모듈에는 많은 내장 기능이 있습니다. 그러나 그것들은 소스에 존재하기 때문에 일단 중단되면 읽기가 어렵지 않으므로 소스를 읽으십시오.


답변

기능 Arity 증가

모든 기능에는 arity가 있습니다. 예를 들어, +당신이 (말) 5 개 요소를 추가하려는 경우, (2)의 인수에 대응을 가지고 있었다 5 + S를 사용 … 또는 수행 +θ12345. 구체적으로 특별히:

  • θ 함수의 arity를 ​​3만큼 증가시킵니다.
  • 부모 함수 *+~θ345678의 arity를 *3 만큼 증가시킵니다. 따라서 3 의 arity를 ​​증가시킵니다.
  • M 기능의 arity를 ​​2만큼 증가시킵니다.
  • ~M 부모 함수의 arity를 ​​2만큼 증가시킵니다.
  • ; 기능의 arity를 ​​1 씩 증가시킵니다.
  • ~; 부모 함수의 arity를 ​​1만큼 증가시킵니다.
  • η 함수의 arity를 ​​1만큼 줄입니다.
  • 부모 함수의 arity를 ​​1만큼 줄입니다.
  • \xad 부모 함수의 arity를 ​​다음 문자의 charcode로 설정합니다.

답변

암시 적 입력 활용

함수에 인수가 충분하지 않으면 나머지 인수에 대한 입력을 찾습니다. 예를 들면 다음과 같습니다.

+uz

번역 할 것 :

add(sum(unaryRange(x)), x)

그것은 동등하다

+uzxx

답변

o값을 저장하는 데 사용

Jolf는 다른 언어가 쉽고 짧은 참조를 위해 변수를 할당하는 방법과 유사합니다 o.

예를 들어 oThx입력에 1을 더한 값을 인쇄합니다.

이것은 쓸모없는 예이지만식이보다 복잡 hx하면 심각한 바이트를 절약 할 수 있습니다.

또한 v"var name"<val>다중 문자 변수 이름을 허용 V"var name"하고 범위에서 변수를 가져옵니다.

설명해 주시고 이전 문장을 주신 Conor에게 감사드립니다.