Защитники Haskell для функций лямбды?

Можно ли установить охрану лямбда-функций?

Например:

\k
    | k < 0     -> "negative"
    | k == 0    -> "zero"
    | otherwise -> "positive"
43
задан Don Stewart 22 April 2011 в 17:52
поделиться

2 ответа

Нет. Ближайший прямой перевод - это что-то вроде

\k -> case () of
       _ | k < 0     -> "negative"
         | k == 0    -> "zero"
         | otherwise -> "positive"
51
ответ дан 26 November 2019 в 22:29
поделиться

Мне нравится делать лямбды короткими и приятными, чтобы не нарушать визуальный поток читателя. Для функции, определение которой синтаксически достаточно громоздко, чтобы требовать внимания, почему бы не поместить ее в предложение where ?

showSign k = mysign ++ " (" ++ show k ++ ")"
  where
  mysign
    | k < 0     = "negative"
    | k == 0    = "zero"
    | otherwise = "positive"
27
ответ дан 26 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

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