假设我有两个文件:
cat dog baboon
feline canine primate
我想在添加空格后将一个文件中的行附加到另一个文件的末尾.我知道在bash中使用for循环来做到这一点的方法,但我认为有一个命令可以做这种事情,我只是记不住了.
输出应如下所示:
cat feline dog canine baboon primate
我是一名Haskell初学者,试图将我的头包裹在导管库中.
我尝试过类似的东西,但它没有编译:
import Data.Conduit
import Data.Conduit.Binary as CB
import Data.ByteString.Char8 as BS
numberLine :: Monad m => Conduit BS.ByteString m BS.ByteString
numberLine = conduitState 0 push close
where
push lno input = return $ StateProducing (lno + 1) [BS.pack (show lno ++ BS.unpack input)]
close state = return state
main = do
runResourceT $ CB.sourceFile "wp.txt" $= CB.lines $= numberLine $$ CB.sinkFile "test.txt"
Run Code Online (Sandbox Code Playgroud)
似乎conduitState中的状态必须与管道的输入类型具有相同的类型.或者至少这是我从错误信息中理解的:
$ ghc --make exp.hs
[1 of 1] Compiling Main ( exp.hs, exp.o )
exp.hs:8:27:
Could not …Run Code Online (Sandbox Code Playgroud) 解决问题时,我必须计算数字的除数。我有两个实现,对于给定的数字,所有除数均大于1。
第一种是使用简单的递归:
divisors :: Int64 -> [Int64]
divisors k = divisors' 2 k
where
divisors' n k | n*n > k = [k]
| n*n == k = [n, k]
| k `mod` n == 0 = (n:(k `div` n):result)
| otherwise = result
where result = divisors' (n+1) k
Run Code Online (Sandbox Code Playgroud)
第二个使用Prelude中的列表处理功能:
divisors2 :: Int64 -> [Int64]
divisors2 k = k : (concatMap (\x -> [x, k `div` x]) $!
filter (\x -> k `mod` x == 0) $!
takeWhile (\x …Run Code Online (Sandbox Code Playgroud) 是否有一个库可以告诉特定unicode字符属于哪个脚本?
例如,对于输入"u'ሕ'",它应该返回Ethiopic或类似的.