Изучение Haskell: понимания списка в C#

Простой способ сделать это состоит в том, чтобы использовать фоновое изображение, тогда просто помещает < img> в том элементе.

другой способ сделать использует слои CSS. Существует тонна ресурсы, доступные, чтобы помочь Вам с этим, просто искать слои CSS .

9
задан BM. 24 January 2010 в 11:34
поделиться

4 ответа

Использование Enumerable :

IEnumerable<double> SquareArea(IEnumerable<int> xs)
{
    return from r in xs select Math.PI * r * r;
}

или

IEnumerable<double> SquareArea(IEnumerable<int> xs)
{
    return xs.Select(r => Math.PI * r * r);
}

, что очень близко к

squareArea xs = map (\r -> pi * r * r) xs
Haskell
22
ответ дан 4 December 2019 в 06:49
поделиться
xs.Select(r => 2 * Math.PI * r * r)

- это правая сторона, я думаю (написание кода в моем браузере, а не компиляция).

В целом понимание формы

[e | x1 <- x1s, x2 <- x2s, p]

списком Haskell, вероятно, похоже на

x1s.SelectMany(x1 =>
x2s.SelectMany(x2 =>
if p then return Enumerable.Singleton(e) else return Enumerable.Empty))

или

from x1 in x1s
from x2 in x2s
where p
select e

или что-то в этом роде. Черт, у меня сейчас нет времени исправить это, кто-нибудь, пожалуйста, сделайте это (помечено Community Wiki).

6
ответ дан 4 December 2019 в 06:49
поделиться

dtb, вероятно, имеет лучшую версию на данный момент, но если вы пошли немного дальше и поместите методы в статическом классе и добавили оператор this, как показано ниже, вы можете вызывать методы, как если бы они были частью вашего списка:

public static class MyMathFunctions
{
    IEnumerable<double> SquareArea(this IEnumerable<int> xs)
    {
        return from r in xs select 2 * Math.PI * r * r;
    }

    IEnumerable<double> SquareAreaWithLambda(this IEnumerable<int> xs)
    {
        return xs.Select(r => 2 * Math.PI * r * r);
    }

}

Который затем может быть выполнен следующим образом:

var myList = new List<int> { 1,2,3,4,5 };

var mySquareArea = myList.SquareArea();
4
ответ дан 4 December 2019 в 06:49
поделиться
Func<IEnumerable<Double>, IEnumerable<Double>> 
   squareArea =  xs => xs.Select(r => Math.PI*r*r);
2
ответ дан 4 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: