Код IT Загрузка примера кода…

Haskell main.hs

import System.Random (newStdGen, randomRs)
import Data.List (nub)

charset :: String
charset = concat [['a'..'z'], ['A'..'Z'], ['0'..'9'], "!@#$%"]

pick :: Int -> String -> [Int] -> String
pick 0 _ _ = []
pick n cs (r:rs) = cs !! (r `mod` length cs) : pick (n-1) cs rs

main :: IO ()
main = do
  gen <- newStdGen
  let rs = randomRs (0, 10^6) gen
  putStrLn $ pick 16 charset rs

import System.Random (newStdGen, randomRs)
import Data.List (nub)

charset :: String
charset = concat [['a'..'z'], ['A'..'Z'], ['0'..'9'], "!@#$%"]

pick :: Int -> String -> [Int] -> String
pick 0 _ _ = []
pick n cs (r:rs) = cs !! (r `mod` length cs) : pick (n-1) cs rs

main :: IO ()
main = do
  gen <- newStdGen
  let rs = randomRs (0, 10^6) gen
  putStrLn $ pick 16 charset rs