人気ブログランキング | 話題のタグを見る

Myenv にディレクトリ操作のコマンドを作る。

前回の記事の対話型プログラミング環境 Myenv にディレクトリ操作のコマンドを付け加えた。といっても、pwd と cd と ls と cat しかないが。

Ruby の場合も一番よく使うのは irb だ。個人的なプログラムを作る場合は、使用目的のはっきりしたまとまったプログラムをつくることはあまりない。ちょっとしたアイディアをプログラムにして動かしてみたいというときは、対話型のプログラミング環境が一番便利だからだ。

Hugsも便利な対話型の環境だが、単一のモジュールしか使えない。プロンプトで関数の定義ができないなど不満な点がある。竹に木を接ぐような不格好なものでも自分用の環境が作れるのはありがたい。

Haskell にもだいぶ慣れてきたので、これからどういう方向で学習していけばいいかが見えてきた。あとは、文字列の操作や、検索のテクニック、文字列のパースのテクニック、データベースやウェブとの連携などではないだろうか。

Haskell も仕様が決まってから10年以上たっているので、応用についてはかなりの知識の蓄積があるはずだから、自分で考えなくてもそういうものを探してくればいいはずだ。ただ、日本語の情報源が少ないのに苦労する。ちょうどいいレベルのものがあまりない。小さなことからコツコツやっていくしかないだろう。

Haskell も始めて2か月になってきたので、ちょっと変わっているが、普通の汎用言語だなという印象がもてるようになってきた。しかし、小さい用途でも自由に使うというにはまだまだ道は遠いようだ。



(前回の記事のMyenv にディレクトリ操作を追加したプログラム)
module Myenv where

import System
import Directory
import Data.List

pwd = getCurrentDirectory >>= putStr
ls "" = getCurrentDirectory >>= getDirectoryContents >>= putStr . concat . map ("\t"++)
ls pathname = getDirectoryContents pathname >>= putStr . concat . map ("\t"++)

cat fname = readFile fname >>= putStr

実行例;
Hugs> :l myenv.hs
Myenv> pwd
C:\WinHugs
Myenv> ls ""
...array.txtbtree.hscat.hscbalTree.hscomb.hscombi.hs
(以下省略)

Myenv> ls "C:/"
$AVG8.VAULT$$Recycle.Binautoexec.batBootbootmgrBOOTSECT.BAK
(以下省略)
Myenv> ls ""
... hello.txt ....

Myenv> cat "hello.txt"
hello, world
by tnomura9 | 2009-09-24 05:52 | Haskell | Comments(0)
<< Haskell 習得のチェックリスト Hugs で対話型プログラミン... >>