func Cbrt(x complex128) complex128 {
z := complex128(1)
recursive := func() complex128 {
ans := z - (z * z * z - x) / (3 * z * z)
if cmplx.Abs(ans - z) == 0 {
return ans
} else {
return recursive(x, ans)
}
}
return recursive();
}
こんな感じで書いたけど、意図と合ってるのかどうか...