![]() |
#11 |
Moderator
|
Цитата:
int - 32 разряда
суффикс I означает bigInt some(a,b) означает some(tuple(a,b)), что означает nullable tuple(a,b) tuple(a,b) в контексте функции unfold означает: a - текущее состояние, b - следующее состояние. так? ахренеть! 0I,1I - как ты правильно заметил, что BigInteger, а точнее, обертка вот над этой .NET структурой: https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx Цитата:
The T:System.Numerics.BigInteger type is an immutable type that represents an arbitrarily large integer whose value in theory has no upper or lower bounds.
X++: fun (x, y) -> Some(x, (y, x + y)) Эта функция (как видно по ее названию) противоположна более популярной функции fold (которая в python называется reduce, а в C# LINQ - aggregate): Цитата:
Seq.fold (fun acc elem -> acc + elem) 0 seq
Цитата:
seq.Aggregate(0, (acc, elen) => acc + elem);
Теперь про Some - я там выше написал, что эта функция "постарается" вернуть очередное значение. Но компилятор понимает, что это не всегда возможно. И хочет, чтобы ты это понимал и не забывал и предлагает использовать тебе "option type" - аналог монады MayBe из других языков программирования. |
|