나는 솔직히이 도전이 존재하지 않는다고 믿을 수 없다.
도전
함수를 작성하십시오.
사양
-
프로그램은 일종의 호출 가능한 함수를 정의해야합니다. 여기에는 일반적으로 함수, 람다 함수 또는 서브 루틴으로 알려진 것이 포함됩니다. 이러한 유형의 호출 가능 항목은 모두이 게시물에서 “기능”이라고합니다.
-
기능에 대한 입력은 선택 사항이며 필수는 아닙니다.
-
함수의 리턴 값도 선택 사항이며 필수는 아니지만 제어는 호출 프로그램으로 리턴해야합니다.
-
-
나중에 액세스 할 수 있도록 함수를 일종의 변수에 지정해야합니다. 여기에는 간접 할당 (명명 된 함수를 선언하면 이름이 현재 범위에 자동으로 추가되는 가장 일반적인 언어)과 직접 할당 (익명 함수를 변수에 직접 할당)이 포함됩니다.
-
함수의 이름을 지정할 필요는 없습니다.
-
이 함수에 의해 생성해야합니다 당신 – 당신은 그냥 변수에 언어에서 기본 기능을 할당 할 수 없습니다.
-
표준 허점 은 없습니다 .
이것은 code-golf 이므로 바이트 단위의 최저 점수가 이깁니다.
답변
답변
젤리 , 0 바이트
인수를 리턴하는 모나드 링크. 스크립트에 처음 나타나는 함수이므로를 사용하여 호출 할 수 있습니다 1Ŀ
.
Jelly에서 0 바이트 링크 / 함수가 작동한다는 점을 지적한 @lirtosiast에게 감사합니다.
즉
3,4,5 1Ŀ
답변
자바 스크립트, 6 바이트
f=_=>0
변수 할당을 포함합니다. 여기서 볼 것이 많지 않습니다.
답변
답변
ZX 스펙트럼 기본, 6 바이트
DEF FN f()=PI
16 진 덤프 : CE 66 28 29 3D A7
. CE
에 대한 1 바이트 키워드 DEF FN
(후행 공백 포함)이고 A7
에 대한 1 바이트 키워드입니다 PI
. 를 사용하여 전화FN f()
. 프로그램 예 :
10 PRINT FN f(): DEF FN f()=PI
산출:
3.1415927
답변
하스켈 , 3 바이트
o=9
이 코드는 o
하나의 형식 매개 변수와 하나의 형식 클래스 인스턴스 매개 변수를 취하는 다형성 함수를 정의합니다 . 이 함수가 호출되면 지정된 유형 클래스 인스턴스를 가져 와서 fromInteger
멤버를 가져오고 해당 멤버 Integer
를 9 의 값으로 호출 한 다음 결과를 리턴합니다.
물론 방금 설명한 것은 Haskell 함수의 동작 일 뿐이며, 9
코드 o
는에 해당 하는 함수를 정의하기 만합니다 9
.
이제 유일한 질문은 9
“당신이 만든 기능”입니까, 아니면 “언어의 기본 기능”입니까?
나는 그것이 “당신에 의해 만들어졌다”고 생각합니다. 이것이 내가 말한 이유는 Haskell의 사양을 읽으면 9
어디서나 함수에 대한 언급을 찾을 수 없기 때문 입니다. 대신 사양에 하나 이상의 숫자를 함께 묶어 숫자 리터럴을 만들 수 있다고 명시되어 있습니다. 따라서 숫자 문자열을 쓰면 함수를 작성했습니다. 한 자리 만 사용한 경우에도 마찬가지입니다.
답변
R , 9 바이트
body(t)=0
나는 이것이 규칙을 준수한다고 생각합니다. 이 기능 t
은 입력과 출력을받지 않습니다 0
. 이것은 t
(전치 함수) 라는 함수가 이미 존재하고 함수 본문을 재정의하기 때문에 작동합니다. say body(a)=0
(라는 객체 없음 a
) 또는 body(F)=0
( F
논리적이며 함수가 아닙니다)에서는 작동하지 않습니다. 나는 그것이 여전히 나에 의해 만들어지기 때문에 준수한다고 생각합니다. 나는 미리 정의 된 함수가하는 것, 단순히 그 이름을 재사용하지 않습니다.
나는 이것이 R 골퍼들이 사용한 것을 본 적이 없다고 생각하지만, 도우미 기능이 필요한 도전에서 몇 바이트를 절약 할 수있는 상황이있을 수 있습니다.
보다 표준적인 해결책은 다음과 같습니다.
R , 13 바이트
f=function()0
입력 및 출력이없는 기능 0
. 이것은 입력을받지 않고 아무것도 출력하지 않는 함수보다 1 바이트 짧습니다.
f=function(){}
본문 ( f=function()
) 없이 함수를 정의하려고하면 R은이를 불완전한 명령으로 해석합니다 (이전 버전의 R에서는 그렇지 않을 수 있음).
OganM이 지적했듯이 이것을 11 바이트로 줄입니다.
R , 11 바이트
function()0
이 함수는 (일시적으로)에 할당 되었기 때문에 어떤 종류의 변수에 함수를 할당해야하는 요구 사항을 기술적으로 준수합니다 .Last.value
.