diffプロシージャ(文字列の差分)

diffコマンドのような文字列の差分を比較するプロシージャがCOM.CURLAP.LIB.UTILパッケージに含まれます。

これは以下のサンプルように利用することができます。

 

            {diff
                “map”, “apple”,
                {fn ses, o, n, p1, p2 =>
                    {switch ses
                     case ShortestEditScript.common do
                        {output “common:” & o}
                     case ShortestEditScript.added do
                        {output “appended:” & n}
                     case ShortestEditScript.deleted do
                        {output “deleted:” & o}
                    }
                }
            }

比較する引数を第1と第2引数に指定し、比較した1文字ごとに第3引数のプロシージャが実行されます。このプロシージャの1個目の引数で、2つの文字列内で共通した文字か、削除されたものか、追加されたものかを判断できます。このサンプルの場合、apが共通、mが削除、pleが追加された文字と認識されます

注意)バージョン0.7からサポート