今日は12月22日、にゃんにゃんにゃんだにゃん。
というわけで、プログラムに「にゃん」を付けてみるにゃん。
まずはノーガードで付けてみるにゃん
「にゃーん」と表示にゃん。
エラーになったにゃん。
[エラー][文法エラー]main.nako3(1行目): 不完全な文です。関数『表示』、単語『ゃん』が解決していません。
エラーにならないようにするにゃん
ノーガードで「にゃん」をつけると、助詞の「に」と単語「ゃん」として認識されたみたいにゃん。
そこで、「ゃん」を何もしない関数として定義するにゃん。
●(Aに)ゃんとは
ここまで。
「にゃーん」と表示にゃん。
「にゃーん」と表示できたにゃん。
素数判定でもしてみるにゃん
せっかくにゃので、素数判定でもしてみるにゃん。
●(Aに)ゃんとは
Aを戻すにゃん。
ここまでだにゃん。
定数の最大安全整数は「Number.MAX_SAFE_INTEGER」をJS実行にゃん。
判定対象欄は「223」のエディタ作成にゃん。
判定対象欄の「type」に「number」をDOM属性設定にゃん。
「は素数かにゃ?」のボタン作成にゃん。
それをクリックした時には
定数の判定対象は判定対象欄のテキスト取得して整数変換にゃん。
もし、判定対象をNAN判定ならば
「意味がわからないにゃん。」と言うにゃん。
空を戻すにゃん。
ここまでだにゃん。
もし、判定対象が最大安全整数超ならば
「大きすぎるにゃん。」と言うにゃん。
空を戻すにゃん。
ここまでだにゃん。
もし、判定対象が2と等しいならば
「{判定対象}は素数だにゃん。」と言うにゃん。
空を戻すにゃん。
ここまでだにゃん。
もし、(判定対象が2未満)または(判定対象が偶数)ならば
「{判定対象}は素数じゃないにゃん。」と言うにゃん。
空を戻すにゃん。
ここまでだにゃん。
変数の割る数は3にゃん。
割る数の二乗が判定対象以下の間、繰り返す
もし、判定対象を割る数で割った余りが0と等しいならば
「{判定対象}は素数じゃないにゃん。」と言うにゃん。
空を戻すにゃん。
ここまでだにゃん。
割る数を2増やすにゃん。
ここまでだにゃん。
「{判定対象}は素数だにゃん。」と言うにゃん。
ここまでだにゃん。
素数判定にゃん (プログラム貯蔵庫)
See the Pen nako3 primality test nyan by MikeCAT (@mike_cat) on CodePen.
アルゴリズムは普通のやつにゃので、説明は省略するにゃん。
関数「ゃん」が「何もしない」だと代入に支障が出たので、引数をそのまま戻すようにしたにゃん。
「ここまで」にそのまま「にゃん」をつけるとエラーになってしまったので、「だ」を挟んだにゃん。
こうすることで、未定義の変数「だ」が助詞「に」に対応する引数として渡され、構文が成立するみたいにゃん。
注意点にゃん
関数「ゃん」を実行しているので、「それ」の値が破壊されるにゃん。
●(Aに)ゃんとは
Aを戻すにゃん。
ここまでだにゃん。
入力欄は「猫」のエディタ作成にゃん。
# これは大丈夫にゃん (「入力欄」の値と同じにゃん)
それの「size」に「22」をDOM属性設定にゃん。
# これはエラーになるにゃん
それの「placeholder」に「かわいいもの」をDOM属性設定にゃん。
[実行時エラー]main.nako3(11行目): 『DOM属性設定』でクエリ『undefined』でDOM取得に失敗しました。
「それ」の使用を避け、変数を明示的に指定することで回避できるにゃん。
●(Aに)ゃんとは
Aを戻すにゃん。
ここまでだにゃん。
入力欄は「猫」のエディタ作成にゃん。
# ここでは「それ」も使えるけど、統一するにゃん
入力欄の「size」に「22」をDOM属性設定にゃん。
# 明示的に変数を指定するにゃん
入力欄の「placeholder」に「かわいいもの」をDOM属性設定にゃん。
まとめにゃん
助詞「に」で引数を受け取り、それをそのまま返す関数「ゃん」を定義することで、なでしこさんで語尾に「にゃん」を付けたプログラムを書くことができたにゃん。
「ここまで」の後ろには、「にゃん」ではなく「だにゃん」を付けることでエラーを回避できるにゃん。
ただし、関数を挟む影響で「それ」の値が破壊されることに注意するにゃん。

