[ [ 1 2 ] [ 3 4 ] ] как на Haskell преобразовать к [ 1 2 3 4 ] ?
Ну или на каком-нибудь другом функциональном языке?
У меня так:
[ [ 1 2 ] [ 3 4 ] ] .Fold
Но у меня же - "на коленке". Хочется понимать как "у людей" устроено.
А [ 1 2 ] .Join [ 3 4 ] как?
А [ 1 2 ] .Map .ToString как?
А [ 1 2 ] .Filter .IsOdd как?
А 0 [ 1 2 ] .For + /*сумма элементов*/ как?
Надеюсь, что смысл примеров понятен. Хотя они конечно "на коленке".
Если они всё же понятны, то может быть кто-то откликнется и расскажет как подобное на настоящих языках можно сделать?
Ну или на каком-нибудь другом функциональном языке?
У меня так:
[ [ 1 2 ] [ 3 4 ] ] .Fold
Но у меня же - "на коленке". Хочется понимать как "у людей" устроено.
А [ 1 2 ] .Join [ 3 4 ] как?
А [ 1 2 ] .Map .ToString как?
А [ 1 2 ] .Filter .IsOdd как?
А 0 [ 1 2 ] .For + /*сумма элементов*/ как?
Надеюсь, что смысл примеров понятен. Хотя они конечно "на коленке".
Если они всё же понятны, то может быть кто-то откликнется и расскажет как подобное на настоящих языках можно сделать?
О! Спасибо! Смысл понятен.
ОтветитьУдалитьО да! Тут вообще всё понятно. Мне нравится.
ОтветитьУдалитьА filter?
ОтветитьУдалитьА concat [ [ 1 2 [ 3 4 ] ] [ 5 6 ] ]
ОтветитьУдалитьчто сделает?
А как удалить дубликаты из [ 1 2 3 1 3 4] ?
А как посчитать количество элементов в [ 1 2 3 ] ?
УдалитьCount [ 1 2 3 ] ?
Show - это функция преобразования?
ОтветитьУдалитьПонял! Спасибо. Я так примерно и думал.
УдалитьFilter - понял, но что там за кавычки?
ОтветитьУдалитьПоследний пример - сумма элементов массива. "Свёртка" если не ошибаюсь.
ОтветитьУдалитьМассив к скаляру.
ОтветитьУдалитьА почему \x? Что слеш означает?
ОтветитьУдалить-> понятно. Отображение a в b.
ОтветитьУдалитьa -> b
А? Произведение?
ОтветитьУдалить1 [ 1 2 3 ] .for * ?
А к каждому элементу 1 прибавить?
ОтветитьУдалить[ 1 2 3 ] .Map ( + 1 ) ?
"Обратные тики-кавычки нужны для инфиксной записи бинарной функции. То есть мы располагаем mod между аргументами."
ОтветитьУдалитьА иначе польская запись?
"\x - это начало лямбда-функции"
ОтветитьУдалитьПонял.
\ - это "ключевое слово" лямбда?
Фактически \x определяет аргумент и тот факт, что это лямбда?
ОтветитьУдалитьSum
ОтветитьУдалитьА как произвольную лямбду для пары элементов подать?
Ну например квадрат?
intercalate [10] [[1, 2], [3, 4], [5, 6]]
ОтветитьУдалитьО! У меня такое есть:
[ [1 2] [ 3 4 ] [ 5 6] ] [ 10 ] .CatWithSeparator
filter odd [1,2,3,4] же, ну..
ОтветитьУдалитьДа. Спасибо!
ОтветитьУдалить