태그 보관물: stateful

stateful

재부팅 할 때 문자열을 유지하기 위해 언어에서 가장 짧은 코드 작성합니다 (둘

귀하의 프로그램 :

두 가지 프로그램을 작성합니다 (둘 다 동일한 언어로). 스토리지 프로그램은 STDIN에서 문자열을 가져와 영속적 인 위치 (아래 참조)에 저장 한 다음 오류없이 종료합니다. 검색 프로그램은 입력을받지 않고 저장된 문자열을 검색하여 STDOUT에 인쇄합니다.

지속성에 대한 객관적인 테스트 :

로컬 머신에서 스토리지 프로그램을 실행 한 다음 로컬 머신의 전원을 껐다 켜고 로컬 머신에서 검색 프로그램을 호출 할 수 있어야합니다. 이 재부팅 테스트를 통과하는 한 웹 에서조차도 원하는 문자열을 숨길 수 있습니다.

테스트 사례 :

저장 후 검색 :

echo foo | Store
Retrieve
foo

반복 된 상점은 (set () 메소드와 같이) 겹쳐 써야합니다.

echo foo | Store
echo bar | Store
Retrieve
bar

반복 검색은 비파괴 적입니다 (get () 메소드처럼).

echo foo | Store
Retrieve
foo
Retrieve
foo

스토리지를 호출하기 전에 검색 :

당신은 이것에 대해 걱정할 필요가 없습니다. 검색 프로그램은 스토리지 프로그램이 과거 어느 시점에서 실행되었다고 가정 할 수 있습니다.

입력 / 출력 유연성.

사람들은 엄격한 STDIN / STDOUT에서 표준 IO 규칙으로 이것을 확장하도록 요청했습니다. 허점이 너무 많기 때문에 나는 할 수 없습니다. 일부 표준 IO 옵션에는 이미 입력이 지속적으로 저장되어 있습니다 (예 : “프로그램이 파일에서 입력을받을 수 있음”). 엄격한 STDIN 및 STDOUT보다 유연하지만 플러드 게이트를 열지 않고 싶습니다.

표준 IO 규칙 스레드에서 나는 도전을 깨뜨리지 않는 것을 선택합니다.

대체를 사용하는 경우 사용자 대화식이어야합니다. 사용자는 입력을 프로그램에 파이핑하거나 프로그램이 제공하는 프롬프트에 입력하거나 입력을 프로그램의 명령 줄 인수로 입력하는 것 외에 다른 작업을 수행 할 필요가 없습니다. 화면에 출력이 표시되거나 STDOUT 또는 STDERR로 전송되는 것을보기 위해 검색 프로그램을 실행하는 것 이외의 작업을 수행하지 않아도됩니다.

허용되는 가정 :

  • 두 프로그램은 같은 디렉토리에서 실행됩니다
  • 프로그램에 해당 디렉토리에 대한 읽기-쓰기 권한이 있습니다
  • 생성 한 파일은 재부팅 후에도 유지됩니다 (temp dir 아님)
  • 문자열의 일부가 아닌 하나의 후행 줄 바꿈이 허용됩니다. 다른 후행 공백이 없습니다.

이것은 코드 골프이며, 점수는 두 프로그램의 바이트 합계입니다.



답변

zsh, 4 바이트

Store : >f(STDIN에서 읽고이라는 파일에 씁니다 f)
Retrieve : <f(의 내용 f을 STDOUT에 씁니다 )


답변

TI-BASIC (Z80), 1 바이트 ?

상점 :  (문자열 만 입력)
검색 : Ans(바이트 27)

그러나 이것이 유효하지 않은 경우 :

TI-BASIC (Z80), 7 6 바이트

Jakob에게 -1 감사합니다.

상점 : Prompt Str0(bytes DD AA 09)
검색 : disp Str0(bytes ED AA 09)


답변

브라우저 JS, 44 바이트

저장 :

localStorage.a=prompt()

검색 :

alert(localStorage.a)

답변

POSIX 쉘 sh / bash / … 8 바이트

저장:

dd>f

가져 오기:

dd<f

답변

파이썬 3 , 46 바이트

저장, 45 바이트 :

open(*'fw').write('print(%r)'%open(0).read())

검색 프로그램은 이름이라는 파일 인 store 명령으로 빌드됩니다 f. ( 파일 이름은 1 바이트 )


답변

배치, 16 바이트

COPY CON A
TYPE A

답변

Powershell-4 바이트

저장:

ac

(대안도 sc)

검색

gc

편집 : 방금 출력에 사용자 입력이 허용되지 않는 것을 알았습니다 … 그래서 4에서 6 또는 8 바이트로 이동합니다.

저장:

ac f

sc f8 바이트 버전의 경우 (대체 )

ac

f6 바이트 버전의 경우 경로로 지정하십시오.

검색

gc f