Поскольку внутренние скобки - это просто синтаксис python (буквальный) для списка.
Внешние скобки - это операция индексатора объекта dataframe pandas.
В этом примере использования inner ['A', 'B']
определяет список столбцов, передаваемых как один аргумент в операцию индексатора, который обозначается внешними скобками.
Определение const
const x = \_ -> x
Следовательно, (const id)
функция, которая берет один аргумент и всегда возвращается id
и
const id 1 2 = (\_ -> id) 1 2
= id 2
= 2
, определение foldr1
foldr1 f [x] = x
foldr1 f (x:xs) = f x (foldr1 f xs)
, Если мы имеем
myLast' = foldr1 (const id)
затем
myLast' [x] = foldr1 (const id) [x]
{- definition of foldr1 -}
= x
и
myLast' (x:xs) = foldr1 (const id) (x:xs)
{- definition of foldr1 -}
= (const id) x (foldr1 (const id) xs)
{- definition of const -}
= (\_ -> id) x (foldr1 (const id) xs)
{- function application -}
= id (foldr1 (const id) xs)
{- definition of id -}
= foldr1 (const id) xs
{- definition of myLast' -}
= myLast' xs
, который соглашается с определением last'
.
Я полагаюсь в большой степени на :t
при попытке понять Haskell. В этом случае:
Prelude> :t const id
const id :: b -> a -> a
, возможно, помог Вам видеть то, что продолжалось.