解いてみた問題はこちらです
a,b 2つのリストがあって
aにソートする数列
bにaのソート時に固定する数列の位置が入ります
固定する数列の位置はソートせずにその他を昇順でソートします
C++ プログラムの骨格は同じです
型宣言が必要なので、その分長くなります
Haskell 初心者が書くとこんな感じです
loopLoop
全検索型のソートの入れ替え判断の位置を2つずつ設定しています
constSort
15 比較する位置がなければ現時点のソート結果を返す
16 比較する2つの位置のどちらかが固定ならばソートせずに入れ替える位置を削って再帰
17 18 比較する2つの位置で逆順なら入れ替えて再帰
19 ソートせずに入れ替える位置を削って再帰
簡単なプログラムを複雑回帰にして、プログラム筋力を養うのにHaskellは向いています
われながら、よく作れた...