이 질문에서 영감을 얻었습니다 .
사용자에게 일부 데이터를 저장하도록 요청하는 프로그램을 작성하고 프로그램이 종료되면 세션 데이터가 변경된 것을 제외하고 프로그램 자체를 뱉어 내십시오.
그런 다음 사용자는 새로 생성 된 프로그램을 열고 이전 프로그램의 데이터를 호출 할 수 있습니다.
명령
KEY VALUE
: 세션 변수KEY
를VALUE
*
: 모든 데이터 지우기! KEY
: 삭제KEY
? KEY
: 쿼리KEY
(존재하지 않는 경우 : 아무것도 인쇄하지 않고 계속 진행)- 그렇지 않으면 프로그램을 종료하십시오
키나 값은 공백을 포함 할 수 없습니다. 새로 생성 된 프로그램의 파일 이름은 프로그램 버전을 식별해야하며 날짜 또는 카운터를 사용할 수 있습니다.
상호 작용 예 :
name test store name = test
data is now { name: test }
0 1 data is now { name: test, 0: 1 }
? name output: test
! 0 delete 0
data is now { name: test }
hello good world data is now { name: test, hello: good }
the extra word "world" is ignored
egiwiwegiuwe the "otherwise" case: quit program
사용자는 새로 생성 된 프로그램을 엽니 다
? name output: test
name retest data is now { name: retest }
* clear
data is now { }
샘플 구현 : https://gist.github.com/1128876
규칙
- quined 프로그램에서 주석이나 중요하지 않은 공백을 보존 할 필요는 없습니다. 기능과 데이터 만 보존하십시오.
- 외부 저장소는 사용할 수 없습니다.
- 다른 quine 문제와 마찬가지로 부정 행위 quine이 없습니다.
- 가장 짧은 코드가 승리합니다.
부정 행위로 간주되는 것은 무엇입니까?
—
Casey Chu
Casey, 보통 자체 소스 코드를 읽습니다.
—
Joey
아 내 JS 솔루션은 그와 비슷합니다. 글쎄, 사양이 명확하지 않기 때문에 하향 조정 될 위험이 있습니다.
—
Casey Chu
SELECT 1 AS ID, NAME AS BLAH UNION...