Mathematica에서 할머니를 구현해보십시오.

전 자료



Java에서 유파를 구현해보십시오.

오랜만에 Qiita를 들여다 보면 유행하고 있습니까? 라고 생각해 다른 사람이 하지 않을 것 같은 Mathematica로 구현해 보았습니다.

코드



보통
name = InputString["契約書だよ。そこに名前を書きな。"];
Print[StringJoin["フン。", name, "というのかい。贅沢な名だねぇ。"]];
newname = RandomChoice[Characters[name]];
Print[StringJoin["今からお前の名前は", newname, "だ。いいかい、", newname, "だよ。分かったら返事をするんだ、", newname, "!!"]];

변수를 의지에서도 사용하지 않는 판
StringJoin["フン。", #, "というのかい。贅沢な名だねぇ。\n", 
   {"今からお前の名前は", #, "だ。いいかい、", #, "だよ。分かったら返事をするんだ、", #, "!!"} &@
    RandomChoice[Characters[#]]] &@
 InputString["契約書だよ。そこに名前を書きな。"]

간단한 해설


  • InputString - 노트북 인터페이스에서 VB의 InputBox와 같이 사용자의 입력 프롬프트가 표시됩니다. CLI는 표준 입력에서 읽습니다.
  • Characters - 인수 문자열을 하나의 문자로 나눈 목록으로 만듭니다. 예) "山田太郎" -> {"山", "田", "太", "郎"}
  • RandomChoice - 인수 목록에서 하나의 요소를 무작위로 선택합니다.
  • StringJoin - Characters 와는 반대로, 인수의 캐릭터 라인을 결합한 1 개의 캐릭터 라인으로 합니다.

  • 실행 샘플



    Mathematica 노트북에서 위의 코드 중 하나를 복사하여 붙여 넣고 [Shift] + [Enter]

    정상 시스템







    크래시 유파



    아무것도 넣지 않았다면 Mathematica에서 제대로 오류가 발생합니다.



    「𠮷田」씨 문제



    자신이 사용하고 있는 것이 Mathematica 8과 낡은 탓인지, 𠮷다씨에 대해서는 무력.
    최신의 Mathematica 12라면 괜찮을 것 같습니다(참고: 모든 유니코드 문자 사용: Wolfram Language 12의 새로운 기능 ).



    CLI의 원라이너



    CLI로 원 라이너도 가능합니다.
    다만 멀티바이트 문자에 비대응인 것 같습니다. 행의 도중에 마음대로 개행도 됩니다.
    $ math -run 'Print[StringJoin["フン。", #, "というのかい。贅沢な名だねぇ。\n", List["今からお前の 名前は", #, "だ。いいかい、", #, "だよ。分かったら返事をするんだ、", #, "!!"] &@ RandomChoice[Characters[#]]] &@ InputString["契約書だよ。そこに名前を書きな。\n"]];Quit[]'
    Mathematica 8.0 for Linux x86 (64-bit)
    Copyright 1988-2011 Wolfram Research, Inc.
    契約書だよ。そこに名前を書きな。
    山田太郎
    フン。山田太郎というのかい。贅沢な名だねぇ。
    今からお前の名前は�だ。いいかい、�だよ。分かったら返\
    
    >   事をするんだ、�!!
    

    좋은 웹페이지 즐겨찾기