みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

BooのPythonっぽい関数の実装方法を見てみた

BooではPythonっぽい関数を使うことができますが,これらはC#で書かれているようです.例えば,join()関数は,以下のように実装されています.

public static string join(IEnumerable enumerable, string separator)
{
        var sb = new StringBuilder();
        var enumerator = enumerable.GetEnumerator();
        using (enumerator as IDisposable)
        {
                if (enumerator.MoveNext())
                {
                        sb.Append(enumerator.Current);
                        while (enumerator.MoveNext())
                        {
                                sb.Append(separator);
                                sb.Append(enumerator.Current);
                        }
                }
        }
        return sb.ToString();
}

public static string join(IEnumerable enumerable, char separator)
{
    return join(enumerable, separator.ToString());
}

public static string join(IEnumerable enumerable)
{
        return join(enumerable, " ");
}

Builtins.cs より