함수 작성 [닫기]

나는 솔직히이 도전이 존재하지 않는다고 믿을 수 없다.

도전

함수를 작성하십시오.

사양

  • 프로그램은 일종의 호출 가능한 함수를 정의해야합니다. 여기에는 일반적으로 함수, 람다 함수 또는 서브 루틴으로 알려진 것이 포함됩니다. 이러한 유형의 호출 가능 항목은 모두이 게시물에서 “기능”이라고합니다.

    1. 기능에 대한 입력은 선택 사항이며 필수는 아닙니다.

    2. 함수의 리턴 값도 선택 사항이며 필수는 아니지만 제어는 호출 프로그램으로 리턴해야합니다.

  • 나중에 액세스 할 수 있도록 함수를 일종의 변수에 지정해야합니다. 여기에는 간접 할당 (명명 된 함수를 선언하면 이름이 현재 범위에 자동으로 추가되는 가장 일반적인 언어)과 직접 할당 (익명 함수를 변수에 직접 할당)이 포함됩니다.

  • 함수의 이름을 지정할 필요는 없습니다.

  • 이 함수에 의해 생성해야합니다 당신 – 당신은 그냥 변수에 언어에서 기본 기능을 할당 할 수 없습니다.

  • 표준 허점 은 없습니다 .

이것은 이므로 바이트 단위의 최저 점수가 이깁니다.



답변

x86 / x64 머신 코드, 1 바이트

c3

어셈블리:

ret

온라인으로 사용해보십시오! (나옴)

¯ \ _ (ツ) _ / ¯


답변

젤리 , 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.