私はml関数を使ってやっていて、いくつかの厄介なことがありました。
簡単なコードで説明します。たとえば、list(int * int)があり、最初の要素に3を含むタプルがあるかどうかを調べたいとします。
L = [(1,2),(2,3),(3,5),(3,4)]
したがって、このリストでは、5と4を取得したいと思います。ただし、MLでは、関数は再帰的であるため、このようなコードを記述した場合。
fun a(list) =
if #1(hd(list)) = 3 then #2(hd(list))
else a(tl(list))
この単純な関数では、(3,5)が条件を満たしていることを検出すると、5を返し、関数が終了するため、5を取得できますが4は取得できません。
4も入手する方法はありますか?