R
Реализация языка программирования RАвторский интерпретатор системы R.
Примеры:
Hello, World!:
Пример для версий R 2.10.1R позволяет заключать строки как в одинарные кавычки, так и в двойные, хотя при выводе использует только двойные.
print("Hello, World!")
Числа Фибоначчи:
Пример для версий R 2.10.1Используется рекурсивное вычисление чисел Фибоначчи. Функция создается как объект и присваивается переменной fib
. Если функция return
не вызывается в явном виде, функция возвращает значение последней выполненной команды.
Функция print.table
выводит массив, полученный в результате применения функции fib
к массиву чисел от 1 до 16, как таблицу, т.е. в одну строку. Использование функции print
вывело бы элементы массива по одному на строку.
fib <- function(n) {
if (n < 2)
n
else
fib(n - 1) + fib(n - 2)
}
print.table(lapply(1:16, fib))
Факториал:
Пример для версий R 2.10.1Используется итеративное вычисление факториала. Функция paste
конкатенирует безымянные аргументы, именованный аргумент sep
задает разделитель, использующийся при конкатенации (по умолчанию — пробел).
f <- 1
for (n in 0:16) {
print(paste(n, "! = ", f, sep = ""))
f <- f * (n + 1)
}
Факториал:
Пример для версий R 2.10.1Используется встроенная функция prod
, вычисляющая произведение всех элементов массива. Для n = 0 ответ был бы неправильным, т.к. массив 1:0 состоит из двух элементов — 1 и 0.
for (n in 1:16) {
print(paste(n, "! = ", prod(1:n), sep = ""))
}
Квадратное уравнение:
Пример для версий R 2.10.1Основной средой работы с R является интерактивный интерпретатор, поэтому достаточно определить функцию, решающую уравнение, и вызывать ее с нужными коэффициентами. Используется встроенный тип complex
.
quadratic <- function(a, b, c) {
if (a == 0) {
print("Not a quadratic equation.")
} else {
d <- b * b - 4 * a * c
if (d == 0) {
print(paste("x =", -b / 2 / a))
} else
if (d > 0) {
print(paste("x =", (-b + sqrt(d) * c(1, -1)) / 2 / a))
} else {
print(paste("x =", (-b + sqrt(as.complex(d)) * c(1, -1)) / 2 / a))
}
}
}
Комментарии
]]>blog comments powered by Disqus
]]>