最近、
GTD用のソフトウェア、またはロシア語で
「物を整理する方法」を探していました。 もちろん、多くのツールは美しくシンプルですが、柔軟性とカスタマイズオプションが不足しています。 その他は、不必要な機能が山ほどある複雑なモンスターです。 無制限の柔軟性とシンプルさを組み合わせる方法
私は、テキストインターフェイスのファンとして、
GUIではなくサブジェクト指向の
DSL言語を好みました。 しかし、言語パーサーをゼロから作成することは簡単ではありません。 完成した
Haskell言語に型を追加する方がはるかに優れてい
ます 。
データ状態
=未実施
| 行われています
| 製
今月のデータ
= 1月
| 2月
| マーサ
| 4月
| 5月
| 6月
| 7月
| 8月
| 九月
| 10月
| 11月
| 12月
データ日付=月の日付整数整数
データ
=いつ
| C日付
| 日付で
| 日付間
| 年齢の整数
へのデータ
=作業中
| ホーム
| お客様へ
| ナクルト
| 店で
データWhom
=息子
| 娘
| 子整数
データコム
=不明
| 信仰
| カティア
| マーシャ
データ何
=ツリー
| ハウス
| 肝臓
| 会社
| 工場
| 学校
| 幼稚園
| 大学
| 宝物
データWhat Document
=契約
| 遺言
| 契約
| 卒業証書
データ休日
=新年
| 誕生日
データ対処方法
=生まれた
| 死ぬ
| 結婚して
| 出産する
| 何を植える
| ビルドする
| 何を終える
| 何を見つける
| 何を整理する
| 何を買う
| 何を売る
| どのドキュメントに署名する
| 整数を獲得
| 祝日を祝う
| どこへ行く
| に行く
| 飛ぶ
| に浮かぶ
データプロジェクト
=プロジェクト文字列[プロジェクト]
| アクション状況対処方法
ライフ::プロジェクト
life = Project "Life" [
Action Born(Age 0)完了、
教育プロジェクト[
アクション(卒業)(16歳)完了、
アクション(卒業)(20歳)完了
]、
プロジェクト「家族」[
アクション(不明)何かが完了したら、
一度も実行されていない場合のアクション(息子への出産)
実行されていない場合のアクション(娘を産む)
アクション(出産(子供1))WhenNever Done
]、
プロジェクト「仕事」[
アクション(契約に署名)なしの場合、
アクション($ foldr(*)1 [1..20]を獲得)何かが完了したとき
]、
プロジェクト「休憩」[
アクション(新年を祝う)(2009年12月31日の間(2010年1月4日))
]、
何かが行われないとアクションが死ぬ
]
ユニバース::プロジェクト
universe = Project "Everything Else"(ユニバースの繰り返し)
-プロジェクトは、すべてのアクティビティが完了すると完了します
完了::プロジェクト-> Bool
完了(アクション_ _完了)= True
完了(プロジェクト_リスト)=完了したすべてのリスト
完了_ = False
-nbgf ghbrjk
回答::プロジェクト->整数
答え_ = 42
ghciインタープリターでファイルをダウンロードする
GHCi、バージョン6.8.2:http://www.haskell.org/ghc/ :? 助けを求めて
パッケージベースを読み込んでいます...リンクしています...
プレリュード>:l now / gtd / gtd.hs
[1 of 1] Mainのコンパイル(現在/ gtd / gtd.hs、解釈済み)
OK、ロードされたモジュール:メイン。
*メイン>ライフアンサー
42
* Main> answer universe
42
*メイン>ライフ完了
偽
*メイン>完成した宇宙
***例外:スタックオーバーフロー
*メイン>
宇宙がスタックよりも大きいことを示しています:)
GTDツールへのどのクエリまたはレポートが役立つかを知りたいですか?