私は、テキストインターフェイスのファンとして、 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ツールへのどのクエリまたはレポートが役立つかを知りたいですか?