パスワードを忘れた? アカウント作成
この議論は、okky (2487)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。

perl の配列」記事へのコメント

  • LISTコンテキストだから
    @array = ( undef );
    になってるだけでは?

    • 「何が起こっているのか」は多分そうなんでしょう。

      「何が起こって欲しいのか」とはかなり違うっていうだけの話で…。

      --
      fjの教祖様
      • 古い格言に曰く、プログラムは思った通りではなく、書いた通りに動く。

        @arrayを未定義値にしたいなら、

        @array = undef;

        ではなく

        undef @array;

        と書くべきだったという話ですかね。

        undefの返値がLISTコンテキストで()と解釈されて欲しいと思うこともあるかもしれませんが、
        それはそれで、

        select undef, undef, undef, 0.1;

        とか書けなくて不便という。

        ある種のL

        • 「問題が配列の初期化にあるのであって、push の段階にあるのではない」
          (関数へのリファレンスを作って、push している段階は正しい)
          という所に行きつくまでが大変でした。

          そもそもは、ナンプレを解くプログラムのフレームワークの部分を作ってたんですけどね。
          候補を絞り込むための関数を一杯作って、処理の軽い奴から順に配列に push して、[0]から順に適用していく。
          で、[$i] を実行したら「どこかに答の絞り込みが行われた(たとえば、あるマスは今まで「3,5,7」があり得たが、「5」は候補じゃないと判った、とか)場合、その結果に対して[0]から再び適用していく事を

          --
          fjの教祖様
          • 面白そうなので、自分も(好みにより言語はHaskellで)書いてみようと思ったら、
            すでに沢山あって [haskell.org]ちょっとクラクラしました……。

            No guessing [haskell.org]ってのがokkyさんと似た動機で書かれた版かな。
            リスト中のアルゴリズムを順に試して、
            うまく行ったらまたリストの最初から繰り返す、
            という造りも同じようです。

            Sudoku Solver [kyoto-u.ac.jp]等、
            似たようなプログラムが見付かるところを見ると、
            やはり誰しも書きたくなる題材なのですかね。

            時間ができたら自分でも遊んでみたいと思います。
            面白いネタに気付かせて戴いて有難うございました。

            親コメント

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

処理中...