Как смешать привязку (<-), и присвоение (позволило) в одной строке? (в Haskell)

Попробуйте использовать это. Я не могу проверить это сразу, но думаю, что это сработает.

{"\n"}

<Tooltip placement="right" isOpen={this.state.tooltipOpen} target="TooltipExample" toggle={this.toggleTooltip}>
     line one {"\n"}
      line two

    </Tooltip>

РЕДАКТИРОВАТЬ: «~» удалить, не намеревался добавить его.

РЕДАКТИРОВАТЬ: Вы пытались просто добавить <br />?

 <Tooltip placement="right" isOpen={this.state.tooltipOpen} target="TooltipExample" toggle={this.toggleTooltip}>
     line one <br />
      line two

    </Tooltip>
9
задан sastanin 18 March 2009 в 16:50
поделиться

5 ответов

liftM и head очень хороши, но позволяют нам не забыть сопоставление с образцом:

main = do { arg:_ <- getArgs; print arg }

или если Вам нравится расположение

main = do
    arg : _ <- getArgs
    print arg

Когда возможно, большинство Haskellers предпочитает сопоставление с образцом head и tail.

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

Еще одна возможность:

main = putStr . head =<< getArgs
10
ответ дан 4 December 2019 в 06:14
поделиться

Как насчет этого?

import Control.Monad

main = do
   first <- liftM head getArgs
   print first
9
ответ дан 4 December 2019 в 06:14
поделиться

Также возможно использовать ap функция (с типом Monad m => m (a -> b) -> m a -> m b) как это:

import System
import Control.Monad

main :: IO ()
main = do line <- return head `ap` getArgs
          putStrLn line

Это имеет простое преимущество, что, если Ваша функция требует нескольких аргументов, можно использовать ap между каждым из них и Вы не должны использовать liftM2, liftM3 и т.д. Для функции f::a -> b -> c -> d Вы пишете

return f `ap` arg1 `ap` arg2 `ap` arg3
6
ответ дан 4 December 2019 в 06:14
поделиться

Как, связывают и возвращают помеху?

main = getArgs >>= (return.head) >>= print

или

main = liftM head getArgs >>= print

1
ответ дан 4 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

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