GlueLangをHaskell化していこうと

Sat Dec 27 11:59:34 JST 2014 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 1941, keywords:GlueLang,Haskell,グルー言語を作る この記事は最終更新日が7年以上前のものです。

昨日のGlueLangへのパイプライン実装ですが、実装後、パイプは「>>=」で書いたほうが良いんじゃないかという行き当たりばったりなアイデアを思いついたので、やってみました。

これがサンプルスクリプトです。

uedambp:TEST ueda$ cat pipeline_mac4.glue 
   /usr/bin/seq '1' '5' >>=
   /usr/bin/tail '-r' >>=
   /usr/bin/tr '\\n' ' ' >>=
   /usr/local/bin/awk '{print}'
   ###実行###
   uedambp:TEST ueda$ ../main pipeline_mac4.glue 
   5 4 3 2 1 

うん、「, . 」よりも見やすい(主観)。

ということで、READMEのサンプルコードも次のように書き直しました。Haskellもどきです。READMEはGitHubで読めます。READMEには、コンパイルして試す方法も追記しましたので、ちょっと試していただけたらと。

import /bin/ as b
   import /usr/bin/ as ub
   
   main infile = do
    file tmp = cattac infile 
    b.cat tmp
   
   cattac file = b.cat file >>= ub.tail '-r'

型の考え方も、テーブルの列数とかちょっとしたデータの縛りを作るのに利用できそうです。

Haskell風にしたことで数学のコワイお兄さんたちにトラップされそうですが、やっぱりシェルスクリプトは関数型だという持論を表現しやすいので、こっちの方向で開発を進めます。

ノート   このエントリーをはてなブックマークに追加 
 

prev:パイプラインを実装できた next:【問題】年末年始シェル芸問題集

やり散らかし一覧

記事いろいろ