トップ «前の日記(2014-08-31(Sun)) 最新 次の日記(2014-09-04(Thu))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-09-02(Tue) 暖かさが懐かしく

必要もなく三項演算子

前に思いついた 下らないfizzbuzzをnode.jsで。

"use strict"
var mylist = 
  ['fizzbuzz', , , 'fizz', , 
   'buzz', 'fizz', , , 'fizz',
   'buzz', , 'fizz', , ];
 
var x, y, last = 16;
 
for (x = 1; x <= last; x++)
{
  y = x % 15 ;
  mylist[y] == undefined
    ? console.log(x) 
    : console.log(mylist[y]);
}
$ node lfb.js | cat -n
     1	1
     2	2
     3	fizz
     4	4
     5	buzz
     6	fizz
     7	7
     8	8
     9	fizz
    10	buzz
    11	11
    12	fizz
    13	13
    14	14
    15	fizzbuzz
    16	16

スクリプト言語なら、やはり端末が気にかかる

node.js
特に複雑な端末操作など思いつかないけど。

#!/usr/bin/env node
"use strict"
console.log(process.argv[3]);
$ node argv.js  foo bar baz
bar
 
$ chmod 755 argv.js 
 
$ ./argv.js  foo bar baz
bar

argv[0]が"node"で[1]がスクリプト名(フルパス)、 後は引数と未定義値。

+は色々使えるが、* はダメ

"+"は、文字列の数値化、 加算、文字列連結(以上、優先順)ができるけど、"*"は乗算だけ。

> 2 + '18'
218
> + '18' + 2
20
> 2 + + '18'
20
> 'foo' + 2
'foo2'
> 'foo' * 2
NaN

なんか細かい規則色々。

3でアホ

多分一番手っ取り早く。

"use strict"
 
var x, last = + process.argv[2];
 
for (x = 1; x >= last; x++) {
   String(x).match('3')
     ? console.log('アホ')
     : console.log(x);
}
$ node 3aho.js 32 | cat -n
     1  1
     2  2
     3  アホ
     4  4
//
    10  10
    11  11
    12  12
    13  アホ
    14  14
//
    29  29
    30  アホ
    31  アホ
    32  アホ

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。