Hatena::Groupocaml-nagoya

yoshihiro503の関数的日記

2014-09-04 (Thu)Scalaで新しいパスワードをつくる

[Scala]Scalaで新しいパスワードをつくる

11:27 |  [Scala]Scalaで新しいパスワードをつくる - yoshihiro503の関数的日記 を含むブックマーク はてなブックマーク -  [Scala]Scalaで新しいパスワードをつくる - yoshihiro503の関数的日記

次の文字を含むランダム文字列を生成する。

def makePassword(len : Int) = {
  import scala.util.Random
  def randomChoice[A](xs : Seq[A]) = xs(Random.nextInt(xs.length))
  val cs = ('a' to 'z') ++ ('A' to 'Z') ++ ('0' to '9') ++
   Seq('`', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-', '+', '=', '{', '}', '[', ']', '\\', '|', ':', ';', '\"', '\'', '<', '>', ',', '.', '?', '/', ' ')
  Stream.continually(randomChoice(cs)).take(len).mkString
}

こういう時対話環境のある言語は便利。