двойные восклицательные знаки в haskell

19

У меня есть этот код:

ghci>let listOfFuns = map (*) [0..]
ghci>(listOfFuns !! 4) 5
20
  1. что это делает !! означает?

    Я видел пример двойного восклицания:

    GHCi & GT; [1,2,3,4] !! 1 ghci & gt; 2

, но, похоже, это не относится к моему вопросу.

  1. как понять эту функцию. нужны объяснения.
задан BufBills 26.06.2014 в 05:33
источник
  • Hoogle чрезвычайно полезна. –  Ry-♦ 26.06.2014 в 07:15
  • просто читал один и тот же учебник! –  Jonny Leeds 10.02.2015 в 17:33

1 ответ

33

!! индексов. Он принимает список и индекс и возвращает элемент в этом индексе. Если индекс не соответствует границам, он возвращает ⊥.

    
ответ дан icktoofay 26.06.2014 в 05:44
источник
  • В ghci введите: t (!!), чтобы получить его тип, который, вероятно, по строкам [a] -> Int -> a. Из этого легко вывести, что он извлекает один из элементов списка на основе второго параметра. –  Laurent Giroud 26.06.2014 в 07:30