_bc(1)_はスクリプト言語だということを聞きつけ、ちょろっと遊んでみました。※GNU版のbcを使います

とりあえずFizzBuzz

関数定義やif-elseなどが使えるらしい。

fizzBuzz.bc

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/usr/bin/bc -q
define fizzbuzz (n) {
    if (n%15 == 0) {
        print "Fizz Buzz"
    } else if (n%5 == 0) {
        print "Buzz"
    } else if (n%3 == 0) {
        print "Fizz"
    } else {
        print n
    }
    print "\n"
    fizzbuzz(n+1)
}
fizzbuzz(1)
quit

実行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
$ ./fizzBuzz.bc | head -20
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz
16
17
Fizz
19
Buzz

その他

for文を使ったり、read()で標準入力を読んだりもできる模様。

hoge.bc

1
2
3
4
5
6
7
8
9
#!/usr/bin/bc -q
a = read()
for (i=0;i<a;i++) {
    print i
    print " "
}
print "\n"
quit

実行

1
2
$  echo 10 | ./hoge.bc
0 1 2 3 4 5 6 7 8 9

……というか、はてブのシンタックスハイライトにbcあるのね。

参考URL