Home > Tags > プログラム

プログラム

Haskellの理解が急激に進みそうになったきっかけ

しばらく前からプログラミング言語のHaskellをチマチマと勉強してるんですが、いまいち分かったようで分かっていないという期間が続いていました。

しかし、先日、「ふつうのHaskellプログラミング」の「部分適用」を読んで急に何か理解が開けたような気がしました。

引数が複数あるような関数でも、結局は一つの引数を取る関数がさらに関数を返して、関数が次から次へと繋がっていくような感じなんですね。

Haskellの特徴を示すには「部分適用」を真っ先に説明しちゃうのもアリなんじゃないかと思いました。

というわけで、次はいよいよクラスとかモナドとかその辺に着手します(`・ω・´)

81行から成るWordPressの自作投稿フォーム

モバイルからの投稿を最終目標に色々調べていますが、WP投稿用のAPIがあるので楽ですね。
難点はAPIに関するドキュメントが少ない‥‥というか現行バージョンのタグ周りに関しては皆無に近いので、コードを読んで使い方を調べないと‥‥ってくらいですが、PHPのコードを読む勉強になるので良しとしましょう。

んで、とりあえず投稿だけするスクリプトをテストで作りました。
ユーザー認証もサニタイズも文字コード変換もしてないですが、テストなのでその辺はご愛敬。

WPへの投稿は基本的に配列に色々つっこんで、wp_insert_post()の呼び出しでOK。
成功すればポストID(管理ページで見られる各記事の番号)が帰ってきて、失敗したら0。

iG:Syntax Hiliterのテストをかねてソースを貼ってみる。

PHP:
  1. <?php
  2. // これをするだけでWordPressのAPIが呼び出し放題!
  3. require_once '../../wp-config.php';
  4. ?>
  5. <html>
  6.   <head>
  7.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  8.   </head>
  9.   <body>
  10.     <h1>WP投稿テスト</h1>
  11.     <form method="post" action="index.php">
  12.       <table border="0">
  13.         <tr>
  14.           <td>タイトル</td>
  15.           <td><input type="text" name="title" value="" /></td>
  16.         </tr>
  17.         <tr>
  18.           <td>内容</td>
  19.           <td><textarea name="content"></textarea></td>
  20.         </tr>
  21.         <tr>
  22.           <td>投稿者名</td>
  23.           <td><input type="text" name="author" value="" /></td>
  24.         </tr>
  25.         <tr>
  26.           <td>タイプ</td>
  27.           <td><input type="text" name="type" value="post" /></td>
  28.         </tr>
  29.         <tr>
  30.           <td>ステータス</td>
  31.           <td><input type="text" name="status" value="publish" /></td>
  32.         </tr>
  33.         <tr>
  34.           <td>閲覧パスワード</td>
  35.           <td><input type="text" name="password" value="" /></td>
  36.         </tr>
  37.         <tr>
  38.           <td>カテゴリ</td>
  39.           <td>
  40. <?php
  41. $categories = get_categories();
  42. foreach( $categories as $category )
  43.     echo '<input type="checkbox" name="categories[]" value="'.$category->cat_ID.'" />'.$category->cat_name . '<br />' . "\n";
  44. ?>
  45.           </td>
  46.         </tr>
  47.         <tr>
  48.           <td>日付</td>
  49.           <td><input type="text" name="date" value="" /></td>
  50.         </tr>
  51.         <tr>
  52.           <td>タグ</td>
  53.           <td><input type="text" name="tags" value="test,foo" /></td>
  54.         </tr>
  55.       </table>
  56.     <input type="submit" value="送信">
  57.     </form>
  58.  
  59. <?php
  60. // とりあえずタイトルと本文は必須ってことにしとく
  61. if( $_POST['title'] == '' ||  $_POST['content'] == '' )
  62.     exit;
  63.  
  64. $postarr['post_status']     = $_POST['status'];    // publish, draft, private, inherit, future
  65. $postarr['post_type']       = $_POST['type'];      // post, page, attachment
  66. $postarr['post_author']     = get_profile('ID', $_POST['author']);
  67. $postarr['post_password']   = $_POST['password'];
  68. $postarr['post_category']   = $_POST['categories'];
  69. $postarr['post_content']    = $_POST['content'];
  70. $postarr['post_title']      = $_POST['title'];
  71. $postarr['post_date']       = $_POST['date'];
  72. $postarr['tags_input']      = split(',', $_POST['tags'] );
  73. $postarr['post_excerpt']    = ' '// とりあえず空っぽにしとく
  74.  
  75. if( wp_insert_post($postarr) == 0 )
  76.     echo '<div style="color:#ff0000">投稿失敗!!</div>';
  77. else
  78.     echo '<div style="color:#ff0000">投稿成功しました</div>';
  79. ?>
  80.   </body>
  81. </html>

ゲームプログラマー向け、最もタメになる「初心者用言語」はやっぱりC++です

最もタメになる「初心者用言語」まとめ - UK is not Britonish - ハチロク世代

誰もマジメにBASIC系言語を挙げてないのが悲しいようなはてな村らしいような‥‥w

ちなみに、ゲームプログラマーを目指す人に対しての「初心者用言語」はC++だと思うよ。

C#とかJavaはダメ。
自分で出したもの(new)は自分でお片付けする(delete)クセは子供のウチにしつけしないとね。

そういや、大昔に初心者はA、B、Cの順で学べとか言われたなぁ。
アセンブリ言語、BASIC、C言語ということらしいけど‥‥アセンブリの後にBASICは無いだろって気もしたけど、アセンブリやっとけばコンピューターの低レベルなところが分かるからタメになるんだと。

Home > Tags > プログラム

その他諸々

Return to page top