Монте-Карло расчет Пи в Скала

Предположим, я хотел бы рассчитать Пи с помощью симуляции Монте-Карло в качестве упражнения.

Я пишу функцию, которая выбирает точку в квадрате(0, 1), (1, 0) наугад и проверяет, находится ли точка внутри круга.

import scala.math._
import scala.util.Random

def circleTest() = {
  val (x, y) = (Random.nextDouble, Random.nextDouble)
  sqrt(x*x + y*y) <= 1
}

Затем я пишу функцию, которая принимает в качестве аргументов тестовую функцию и количество испытаний и возвращает долю испытаний, в которых тест был признан истинным.

def monteCarlo(trials: Int, test: () => Boolean) =
  (1 to trials).map(_ => if (test()) 1 else 0).sum * 1.0 / trials

... и я могу рассчитать Пи

monteCarlo(100000, circleTest) * 4

Теперь мне интересно, еслиmonteCarlo&nbsp;функция может быть улучшена. Как бы вы написалиmonteCarlo&nbsp;эффективный и читаемый?

Например, поскольку количество испытаний велико, стоит лиview&nbsp;или жеiterator&nbsp;вместоRange(1, trials)&nbsp;а такжеreduce&nbsp;вместоmap&nbsp;а такжеsum ?