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