Your SlideShare is downloading. ×
0
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

コードゴルフのススメ(C言語)

2,377

Published on

Sapporo.cpp #2 LT枠で発表させてもらったもの。

Sapporo.cpp #2 LT枠で発表させてもらったもの。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,377
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. コードゴルフのススメ( C 言語) 横山 文人( @tututen )
  • 2. 自己紹介
    • 社会人 1年生(北見工業大学 大学院卒)
    • LOCAL学生部 OB
      • 学生の方で興味があれば
    • 作品とか作らないプログラマ
    • 言語仕様でいろいろ簡単なものを作るのが大好き
    • パネルでポンの対戦者募集中(ry
  • 3. コードゴルフ
    • 【code golf】より少ないバイト数で所与の課題をプログラミングする遊び。より少ない打(鍵)数を競うところがゴルフに似ているところからの命名。 (はてなキーワード)
    • ある処理に対して、できるだけ短く記述する行為
    • LL(Lightweight Language)が主流
      • ↑主に、Perl、PHP、Ruby、Python
  • 4. コードゴルフの利点
    • いろいろな書き方を覚えることができる
      • 「こう書いたら読みにくい」の書き方
    • スパゲッティコードを読む根気が養われる
    • アンチコードをLTネタとして用意できる
  • 5. コードゴルフの欠点
    • 実用性皆無
    • 趣味の領域
    • ただ短くするだけでは、手法が偏ってしまう
      • ->そこで、ただ短くするだけではなく難読化や手法の改善・改悪などを重視して書き換えることも行うとよい
  • 6. コードゴルフのネタ
    • 見つけたソースがすべてがネタ
    • ここでは「1~10を表示する」を例にプログラムを例に紹介いていこうと思います。
  • 7. 基本形
  • 8. コードゴルフの方針
    • 変数を 1 文字にする
    • 無駄な空白、中括弧({})を省く
    • いろんな処理を 1 行にまとめる
    • なるべく、英数字を使わない(←俺俺ルール)
  • 9. 第1形態
  • 10. 解説
    • 変数名を「 _ 」にした
      • int _;
    • 初期化の部分を条件式で 0 と 1 を再現した
      • _ = _!=_ // i = 0
      • _ + (_ == _) // i + 1
    • 括弧の間のスペース削除
    • コマンドライン引数の削除
  • 11. 第2形態
  • 12. 解説
    • 数字「 10 」をビット演算で生成
      • int ten=1<<3|1<<1; //0b1010 => 10
      • int $=_<<_+_+_|_<<_;
    • 改行コード’ n’ を 10 と置き換える
      • printf(“%dn”, i + 1);
      • printf(“%d%c”, i + 1, 10);
      • printf(“%d%c”,_+(_==_),$);
  • 13. tututen 的最終形態
  • 14. 解説
    • しません!
    • LT 枠では少し時間が短すぎる
  • 15. 結び
    • C++ と関係なくてごめんなさい
    • ご清聴ありがとうございました

×