1. Top » 
  2. スポンサー広告 » 
  3. 【Haskell】ディレクトリ内を表示するlsをHaskellで書く
  4. プログラミング全般 » 
  5. Haskell » 
  6. 【Haskell】ディレクトリ内を表示するlsをHaskellで書く

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Haskell】ディレクトリ内を表示するlsをHaskellで書く

いわゆるlsコマンドまたはdirコマンドの簡単な部分だけを実装します。
ただし別の用途に使うことを前提としている話なので

 カレントディレクトリ .
 ペアレントディレクトリ ..

の二つについては表示から省くためにfilterをかけます。

import Directory

main = ( getDirectoryContents "." ) >>= printList

printList :: [String] -> IO()
printList ls = pList $ filter notCDPD ls
where
pList :: [String] -> IO ()
pList (x:xs) = do c <- getCurrentDirectory
putStrLn ( c ++ x )
pList xs
pList [] = putStr ""

notCDPD :: String -> Bool
notCDPD "." = False
notCDPD ".." = False
notCDPD other = True


bash-3.2$ ghc -o listing listing.hs
bash-3.2$ ./listing.exe
d:\taki\program\haskell\directorylisting.exe
d:\taki\program\haskell\directorylisting.hi
d:\taki\program\haskell\directorylisting.hs
d:\taki\program\haskell\directorylisting.o


このように。

基本的にはDirectoryに用意されている関数を使っているだけです。

getCurrentDirectory :: IO FilePath
 カレントディレクトリのパスを返す

getDirectoryContents :: FilePath -> IO [FilePath]
 現在のディレクトリ内のコンテンツをリストで返す。

FilePathというのはPreludeの中で書かれていて、Stringのことです。



category of Haskell:
【Haskell】とても簡単なHaskellプログラムについて
【Haskell】標準入力(stdin)を読み込むために
【Haskell】結構頻繁に使う関数などの話
【Haskell】高階関数と型の定義について
【Haskell】リストの処理について
【Haskell】コマンドライン引数を得る方法
【Haskell】C言語の構造体のようなものをHaskellで利用する
【Haskell】Haskellを使ってブログに微妙に役立つプログラムを書きたい(Ver.0)
【Haskell】Haskellを使ってブログに微妙に役立つプログラムを書きたい(Ver.1)
【Haskell】コマンドライン引数の取得を活用する。
【Haskell】絶対パスからファイル名だけを取り出す
【Haskell】Haskellを使ってブログに微妙に役立つプログラムを書きたい(Ver.2)
関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/521-0c634106 この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。