Haskell / 数字4つで10を作れ (2)

前回からの続きです。

  • 4つの数と3つの四則演算(×÷+−)を組み合わせて、答えが10になるような計算式を作れ。
  • 数字、演算ともに重複あり。
  • 単一の負符号はなし。

Octocat GitHub hanepjiv/make10_hsでソースコードを公開しています。

実装の解説

使用した言語拡張機能
{-# LANGUAGE     ScopedTypeVariables
   , OverloadedStrings
   , GADTs
   , Safe
   #-}

各ソースコードの最初に上記を指定しています。

Haskell / 数字4つで10を作れ (1)

以前の投稿 Python / 数字4つで10を作れ で、 make10 / メイクテン に挑戦しました。(== 切符パズル == 10puzzle / テンパズル とも。)

次のようなパズルです。

  • 4つの数と3つの四則演算(×÷+−)を組み合わせて、答えが10になるような計算式を作れ。
  • 数字、演算ともに重複あり。
  • 単一の負符号はなし。

以前は Python で解いたこのパズルを Haskell でやってみます。

数字を4つ入力すると、「10になる計算式」を出力するプログラムを作ります。

AdSense / Bloggerで長期間 AdSense が承認されない場合

この度、AdSenseを導入致しました。

際して、AdSenseの承認を得るまでに、だいぶ嵌り込んでしまいました。

同様にお困りの方もいるのではないかということで、経緯を残そうと思います。

嵌った状況

「ご使用の AdSense アカウントは承認待ちの状態です。」

陥ったのは、[Blogger]の[収益]タブを開くと、上記のようなメッセージがでたまま、承認プロセスが (少なくとも1週間以上) 進行しないという状態です。 同様の状況の方は以降の手順で改善するかもしれません。

※ 注意!
「現在、あなたのブログには AdSense に承認されていません。」

上記のように表示されて[AdSenseに登録]ボタンが無効化(グレーアウト)されている場合は、 「記事の総数が足りない」等の理由で参加要件を満たしていない状態です。 当然この場合、この記事の手順に従っても無意味です。

Python / 数字4つで10を作れ

「重複ありの4つの数と、四則演算(×÷+−)を組み合わせて、答えが10になるような計算式を作れ」 というパズルに挑戦してみました。

切符パズルやmake10(メイクテン), 10puzzle(テンパズル)などの名前があるそうで、 GoogleのNexus7のコマーシャルに登場して、よく知られている様です。

条件として

  • 単一の負符号はなし
でやります。

Python3.4で挑戦

$ ./make10.py
# Enter the 4 numbers
>>> 1
>>> 1
>>> 5
>>> 8
# 1 (8 ÷ (1 - (1 ÷ 5))) == 10

shell / 入力を非表示にする

何回か「???」となって、その都度、検索してしまったので、忘れないようにメモ。

エコーバックを無効にする


stty -echo

エコーバックを有効にする


stty echo

ipythonを使っていたら、勝手に入力が非表示になってたことがありました。なんでだろ?

GLSL / WebGLでレイマーチング

現実逃避的にWebGLのGLSLでレイマーチングをやってみました。

下記のstartを押すとJavascriptからWebGLが作動します。 Chomium 40.0 とFirefox 34.0 で動作確認しています。 3D対応のグラフィックカードが必要です。

C/C++ / Pythonを組み込む

アプリケーションにPythonを組み込むサンプルです。

Python 3.3, boost 1.55で実装しました。

要求

  1. shared library(DLL)を作らない
  2. C/C++から外部へモジュールをexportする (== 外部から、C/C++内のモジュールをimportする)
  3. C/C++内から、文字列としてPythonスクリプトを実行する
  4. C/C++内から、外部のモジュールをimportする
  5. Pythonとboost::pythonのみを使用する
  6. C/C++クラスはnoncopyableである
  7. shared_ptr, intrusive_ptrに対応する
  8. factory, addref, releaseを持つクラスに対応する