lean-ja / lean-ja/lean-by-example

`Rand` について紹介する

Open
#1,625 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

データ型
Dominant language
Lean
Stars
188
Forks
15
Avg merge
9h 8m
Merged PRs (30d)
6

Description

import Mathlib.Control.Random

def randList (n : Nat) (bound : Nat) : IO (List Nat) := do
  let mut out := []
  for _ in [0:n] do
    out := (← IO.rand 0 bound) :: out
  return out

#eval randList 5 10

def randVec (l n : Nat) : Rand (Vector (Fin (n + 1)) l) :=
  match l with
  | 0 => pure #v[]
  | l + 1 => Vector.push <$> randVec l n <*> Random.random

#check randVec 5 10

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the existing documentation or example page where an introduction to Rand belongs; the issue provides examples using IO.rand, Rand, Vector, and Random.random. Read nearby pages to match their structure, then add a concise explanation using these examples and verify that the resulting page renders correctly.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.