# Applicative functor

From HaskellWiki

An applicative functor has more structure than a functor but less than a monad. See the Haddock docs for `Control.Applicative`

.

It has turned out that many applications do not require monad functionality but only those of applicative functors. Monads allow you to run actions depending on the outcomes of earlier actions.

```
do text <- getLine
if null text
then putStrLn "You refuse to enter something?"
else putStrLn ("You entered " ++ text)
```

This is obviously necessary is some cases, but in other cases it is disadvantageous.