$grid、$ix、そして候補値の文字位置を渡しています。より、$grid[$ix]のマス目の候補値の中から$p位置の数字を仮の確定値として$grid[$ix]に設定します。先の呼出し箇所と同様の記述です。}}ここで、これらの関数について再帰的な呼出しをしていることに気付かれたでしょうか。引数について説明します。同じ引数を渡して呼び出していますが、関数の定義部分の記述が異なっています。記述の前に'&'が付けられています。各マス目の候補を消去する。~引数名の前に付けられた'&'の意味は、「関数内で引数変数の値が変更されたとき、関数呼び出し側の引数変数も変更される」ということです。関数の呼び出し元と呼び出し先で同じ領域を使っていることになります。値も変更されることになるわけです。全マス目の状態を表示させています。よって変更されたマス目の状態を表示させているわけです。