- 1 名前:デフォルトの名無しさん mailto:sage [2017/06/13(火) 08:54:07.99 ID:O1HnBMDk.net]
- いざ、語ろうぞ。
スレタイ超過のため、一部省略。 その他もウェルカム。 前スレ 次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 mevius.2ch.net/test/read.cgi/tech/1492631007/
- 84 名前:デフォルトの名無しさん [2017/06/25(日) 18:12:35.96 ID:pYBZiqDJ.net]
- 何言ってんのか分からんけど、Haskellでここまでよく使うパターンをライブラリ化出来るなら、もうLL要らんってなった。
速度が必要な時はCで書いて、速度求めないのはHaskellで良いや。 速度こそLLと変わらんけど、ここまで再利用し易いなら自分でよく使うパターンをライブラリにして行けば、すぐにLLより短くなる。 number.hsナンバリング import System.Environment import Myfunc main = getArgs >>= mfput (fnumbering id) revnumber.hsナンバリングと行の逆順 import System.Environment import Myfunc main = getArgs >>= mfput (fnumbering reverse) mygrepn.hs検索文字列含まれる行(行番号付き)抽出。 import System.Environment import Myfunc main = getArgs >>= \(w:fs) -> mfput ((replace w (redstr w)).(grep w).fnumbering id) fs rp.hs(文字列置換) import System.Environment import Myfunc main = getArgs >>= \(w:nw:fs) -> mfwrite (replace w nw) fs
- 85 名前:デフォルトの名無しさん [2017/06/25(日) 18:17:06.53 ID:pYBZiqDJ.net]
- ライブラリ内部にも似た様なパターンを関数化して無駄に似た様な少し違うコードが少ない様にしてる。
Myfunc.hs自作ライブラリ module Myfunc where import Data.List import Text.Printf consnum::(Int,String) -> String consnum (i,xs) = printf "%4d:%s" i xs fline f = unlines.f.lines fnumbering f = fline ((map consnum).(zip [1..]).f) redstr::String -> String redstr [] = [] redstr w = printf "\ESC[1m\ESC[31m%s\ESC[39m\ESC[0m" w bluestr::String -> String bluestr [] = [] bluestr w = printf "\ESC[34m%s\ESC[39m" w grep w = fline (filter (isInfixOf w))
|

|