italic, *italic*
strong, **strong**
// st = [時,分] が [0,0]~[24,0]の範囲内かどうかをチェック | |
def isValidTime = { st -> ((0..23).contains(st[0]) && (0..59).contains(st[1])) || (st[0] == 24 && st[1] == 0) } | |
// st1 = [時,分], st2 = [時,分] が st1 <= st2 を満たすかどうかをチェック | |
def isNotGreaterThan = { st1, st2 -> st1[0] < st2[0] ? true : (st1[0] == st2[0] ? st1[1] <= st2[1] : false) } | |
// pt = [開始時,開始分,終了時,終了分] が [開始時,開始分] <= [終了時,終了分] を満たすかどうかをチェック | |
def isValidPair = { pt -> isValidTime(pt[0,1]) && isValidTime(pt[2,3]) && isNotGreaterThan(pt[0,1],pt[2,3]) } | |
// pt1 = [開始時,開始分,終了時,終了分], pt2 = [開始時,開始分,終了時,終了分] がオーバーラップしているかどうかをチェック |
class MyTime implements Comparable { | |
int hour | |
int minutes | |
MyTime(hour, minutes) { | |
this.hour = hour | |
this.minutes = minutes | |
assert isValid(), "The time ${this} is not valid." | |
} | |
int compareTo(that) { | |
(hour*60+minutes) <=> (that.hour*60+that.minutes) |
// XMLの形状は下記の通り(10x10の迷路限定) | |
// ( from http://d.hatena.ne.jp/aya_eiya/20110329/1301406161 ) | |
// <labyrinth> | |
// <cell doors='East:true,West:false,South:true,North:false' position='1,1'></cell> | |
// <cell doors='East:true,West:false,South:true,North:false' position='1,2'></cell> | |
// ... | |
// <cell doors='East:false,West:true,South:false,North:true' position='10,10'></cell> | |
// </labyrinth> | |
// | |
// 実行後の出力結果を次のように GraphViz に与える |
// aya_eiyaさんのお題 http://d.hatena.ne.jp/aya_eiya/20110329/1301406161 を | |
// deve68さんの方式に従って解いてみた回答 http://d.hatena.ne.jp/deve68/20110410/1302464249 | |
// 判定機能は未実装 | |
final def MAXCOL = 10 | |
final def MAXROW = 10 | |
assert (MAXCOL == MAXROW) && (MAXCOL >= 2) | |
// ノードクラス | |
class Node { |
# -- Additional Settings ------------------------------------------------------- | |
execfile('../common.py') |
.. role:: ロール名 | |
という行を書くと、カスタムのインラインマークアップを定義することができ、 | |
:ロール名:`ロール名を適用する文字列` | |
と書くと、次のHTMLコードに変換されます。 | |
<span class="ロール名">ロール名を適用する文字列</span> |
italic, *italic*
strong, **strong**
例えば次のような構成に対して実行すると、R.csv、A/A.csv、A/B/B.csvができます。 | |
サンプルでは特別な変換処理はしていないので、R.dat、A.dat、B.datは空でも構いません。 | |
A/A.datの内容を変更した場合に、A/A.csvを変更する処理だけが走ることを確認します。 | |
| build.gradle | |
| Rakefile | |
| R.dat | |
| | |
\---A | |
| A.dat |
// http://d.hatena.ne.jp/fumokmm/20110815/1313405510の回答案 | |
// 入力データの配列 | |
def input_as_list = [7, "Hoge", 4, "Fizz", 2, "Buzz"] | |
assert (input_as_list.size()) % 2 == 0, "入力データ数が2の倍数になっていません。" | |
// 入力データをマップに変換 | |
def input_as_map = [:].withDefault{""} | |
(0..<(input_as_list.size()/2)).each { | |
assert input_as_list[it*2].class == Integer, "入力データの偶数番目には数値を与えて下さい。" |
@ECHO OFF | |
SET VARIABLE1=VALUE1 | |
IF NOT DEFINED VARIABLE1 ( | |
SET VARIABLE1=DEFAULT1 | |
) | |
IF NOT DEFINED VARIABLE2 ( | |
SET VARIABLE2=DEFAULT2 | |
) | |
echo %VARIABLE1% | |
echo %VARIABLE2% |