LANGUAGE | スカ友 | 俺、関東の国王だけど (イケメンだ(28)、彼女がほしい) 人類の品種 言葉の起源 虫は宇宙人です 日本語は海豚の言葉に由来します ペンギン(ウルトラマン) 関東無政府主義国へようこそ! simulationライブラリで純粋な関数式プログラミングを
ある強力なFor関数を紹介いたします(C#バー)
0   関東の国王      2019年1月13日 日 14:34
public static T For<T>(int from, int to, _For_FAdd<T> fAdd, _For_FElem<int, T> fElem)
{
   if (from > to)
       throw new Exception();

   T ret = fElem(from);

   for (int i = from + 1; i <= to; i++)
       ret = fAdd(ret, fElem(i));

   return ret;
}

数学には、よくこういう記号が出てくるのですよね、たとえば:

それぞれ、一連の式の和、一連の集合の和集合を表すのです。

同様に、加算や和集合演算を、任意の(引数が二つの)演算にまで一般化できます

たとえば、一連の文字列を加算するとします:

になります。

さらに、もっと複雑なのを考えましょう。文字列同士が ", " で繋がっている、たとえば、ある配列を表す文字列を作成したい場合:
たとえば to_str(x[0]) + "," + to_str(x[1]) + "," +  ... + "," + to_str(x[n-1]) は:

になります。

そして、その計算は、冒頭で定義した For を用いれば:
For(0, n-1, (a, b) => a + "," + b, i => to_str(x[i]));
になります。
この記事は 2019年5月15日 水 4:32 に作者によって編集されました
1   関東の国王      2019年2月6日 水 22:17
他に、each関数もありますよ:
http://x0000.net/topic.aspx?id=3676-0
名前      編集用パスワード(省略可)    パスワードの記憶
数式 αβγ IPA http:// 画像 B I U
(添付ファイルは http://up.x0000.net/ にアップロードしてください)