JDBな人生  専門的なことから日常的なことまで~ まぁ自由きままに書いていきます。
2016年06月 / 05月<< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>07月

アクセスランキング

[ジャンルランキング]
コンピュータ
450位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
66位
アクセスランキングを見る>>

メモ?コメント?備考?

最近少し疑問に思ったのですが、「メモをする」とか「コメントを書く」とかって、結構ニュアンスが近くてややこしいですよね。もはや使い分けをする必要があるのかも怪しいくらいです。

ということで、一通り辞書を見てみました。メモもコメントも英語由来なので、まずは英和辞書(リーダーズ第3版)から。

memo
memoはmemorandumから来ているとのことでこちらを参照。
覚書、備忘録、回覧

comment: 論評、批評、解説、説明

note: 覚書、メモ、酒器、印象記、草稿


noteとmemoはなかなか近いですが、この辞書を見る限り、noteのほうが中身がある感じがします。memoはパッと書くような感じでしょうか。commentは自分のために書くというより、誰かに意見を伝えるという意味が強いようです。

では国語辞典。(広辞苑)

メモ: 忘れないように簡単に書き留めること。また、その記録。

コメント: 事件・問題について、解説や意見を述べること。

ノート: 書きとめること。また、書きとめたもの。手記。

備忘録: 忘れたときの用心のために書き留めておくノート。手控え。

手記: 体験したことなどを自ら書き綴ったもの。


せっかくなので和英もみてみましょう。(ジーニアス和英第3版)

備忘録: notebook

ノート
帳面: notebook
記録やメモ: notes

メモ: note
彼にメモを残す leave a note for him, メモなしで話す speak without memo notes

コメント: comment

手記:
体験記: memoir
印象記: notes

備考: note
備考欄: remarks column


最後にremarkというのが出てきました。「remarkable(注目すべき)」という形容詞がありますが、動詞のremarkは「述べる、書く、一言する、論評する、感想を言う」という意味だそうです。

日本語では、自分向けの覚え書きは「メモ」と言いますが、英語では「彼にメモを残す」が「leave a note for him」となるように、「note」を使うようです。

英語に合わせるなら、まあ「ノートをとる」と言えば良いんでしょうけど、あんまり言いませんね…。

memoもnoteも覚え書きならどう使い分けるんだ、という話ですが、英英辞典をみると答えがありました。noteは「a short piece of writing to help you remember something」で、「自分が」何かを覚えておくための紙片のことです。

対してmemoは「formal」で、「an official note from one person to another in the same organization」だそうです。つまり、noteのうち、同僚などに渡す公式なものを、memoと呼んでいるようです。

どこまでも発散していきそうなので、ここらでまとめましょう。

まず、英語での使い分け。
自分用ならnote、誰かに渡すためならmemo、誰かに意見を伝えるためならcomment、という具合です。
日本語でふつうメモというものはnoteにあたり、ちょっとした連絡事項はmemo、コメントはほぼそのままcommentです。

日本語では自分のために「コメントを書いておく」という表現もできないではないですが、広辞苑でも「解説や意見を述べること」と出ているので、やはり「誰かに伝えることを前提にした」という意味合いは忘れちゃいけないですね。

ノートは中学校の英語の授業で習ったとおりnotebookですが、「ノート」と同じ意味の「備忘録」もそのままnotebookになります。

ちなみに本文には関係ありませんが、「捻挫」は英語で「sprain」、では「つき指は?」というと「sprain one's finger」、つまり「指を捻挫する」と表現するようです。

カタカナ語はもともとの語とニュアンスが微妙に変わっているものが多く、調べてみると面白いですね。

今日から本格的に梅雨っぽくなってきました。
片頭痛持ちには嫌な季節ですね。水素水でも飲んで体調を整えますか。(?)
   English    TB(0)    CM(0)    EDIT    ページ↑

順列を書き並べる

お久しぶりです。
突然ですが、今日は訳あって任意の要素数の順列を書き並べるコードを考えていました。

せっかくなので関数型プログラミングっぽく。と思っていたのですが、要素の重複があった場合のことを考えると、indexを使って実装せざるを得ないですね。

[1, 2, 3, 4, 5]から[1, 2, 3]を抽出するコードは別で準備するということで。といってもslice(0, 3)するだけです。

//重複があると動かない
var f = function(a, p, c) {
  if (p.length == a.length) return c(p);
  a.forEach(function(i) {
    if (p.indexOf(i) != -1) return;
    f(a, p.concat([i]), c);
  });
};

//重複があってもいい
var f = function(a, p, c) {
  if (a.length == 0) return c(p);
  a.forEach(function(item, index, a) {
    f(
      a.slice(0, index).concat(
        a.slice(index + 1, a.length)
      ),
      p.concat([item]),
      c
    );
  });
}

f([1, 2, 3], [], function(row) {
  console.log(row);
});


階乗の性質上、どんどんどんどん総数が大きくなっていくので、実際にこの関数が使い物になるのはほんの小さな範囲だけです。JSだとせいぜいn=10ちょっとくらいだと思います。

そんな使い物にならないコードをわざわざ載せるのはどうなんだという気もしつつ、せっかく考えたので載せておきます。
   プログラミング/開発全般    TB(0)    CM(0)    EDIT    ページ↑

プロフィール

JDB Luigi

Author:JDB Luigi
どこにでもいるようなありふれた人間・・・という訳でもなく、かと言って怪しい宗教を信仰する変人という訳でも無い。

基本的に掲載しているコード等は煮ていただいても焼いていただいても結構ですが、利用は自己責任にてお願いいします。
また、バグ・アドバイス等もしあればよろしくお願いします。