November 2016

S M T W T F S
  1 2345
6789101112
13141516171819
20212223 242526
27282930   

Style Credit

Expand Cut Tags

No cut tags
Tuesday, September 7th, 2010 02:09 am
Пятнадцать минут назад познакомился с GNU R ([livejournal.com profile] nikolaypultsin показал некоторое уродство).

Тут же породил натуральные числа:
> one <- function (x) { return }
> two <- function (x) { return (one) }
> three <- function (x) { return (two) }
> four <- function (x) { return (three) }
> five <- function (x) { return (four) }
> print_nicely (one)
[1] 1
> print_nicely (two)
[1] 2
> print_nicely (three)
[1] 3
> print_nicely (four)
[1] 4
> print_nicely (five)
[1] 5


Упражнение для читателя: написать print_nicely. Я сваRщик ненастоящий, посему использовал то самое уродство. Кстати, хардкодить числа внутрь неспортивно, нужно, чтобы вот так работало:

> add_one <- function (n) { function (x) { return (n) } }
> print_nicely ( add_one (five) )
[1] 6


И даже так:

> add_m <- function (n, m) {
+ if (m == 0) return (n)
+ else return (
+ add_m (add_one (n), (m - 1)) )
+ }
> print_nicely (add_m (one, 10))
[1] 11
> print_nicely (add_m (one, 101))
[1] 102
Tuesday, September 7th, 2010 01:53 am (UTC)
в R есть sprintf
[identity profile] misha kapushesky (from livejournal.com)
Saturday, September 11th, 2010 05:41 pm (UTC)
может можно и проще, но вот например
print_nicely <- function(n, i = 1) { n()(i); f(n(), i+1) }