gpt4 book ai didi

haskell - 在 Haskell 中表达一系列脚本化的 Python 字符串替换

转载 作者:行者123 更新时间:2023-12-02 17:11:50 24 4
gpt4 key购买 nike

我经常使用 Python 来替换文本中的各种类型的字符,使用如下所示的脚本:

#!/usr/bin/env python                                                                                                                                                                                                                                                         
# coding=UTF-8

import sys

for file in sys.argv[1:]:
f = open(file)
fs = f.read()
r1 = fs.replace('\n',' ')
r2 = r1.replace('\r',' ')
r3 = r2.replace('. ','.\n\n')
r4 = r3.replace('é','e')
r5 = r4.replace('\xc2',' ')
r6 = r5.replace('\xa0',' ')
r7 = r6.replace(' ',' ')
r8 = r7.replace(' ',' ')
r9 = r8.replace('\n ','\n')
f.close()
print r8

但我现在正在学习 Haskell,因为我厌倦了 Python。

我在 Haskell 中的最佳尝试是

#!/usr/bin/runhaskell 

import System.IO

main :: IO ()
main = do
inh <- getArgs >>= withFileLines
outh <- -- ??
mainloop inh outh
hClose inh
hClose outh

replacements :: String -> String
replacements = unwords $ map -- hmm....

...而且,我不知道该去哪里。

最佳答案

Haskell 中最简单的方法涉及在输入上映射一个 Char -> Char 替换函数(下面的 f),产生一个新的输出(interact 函数负责 fopen/fclose 模式):

main = interact $ map f
where
f '\n' = ' '
f '\r' = ' '
f 'é' = 'e'
f '\xa0' = ' '
f c = c

您可以修改它来执行您自己的 IO,使用 Text 包等,但字符转换的基本模式是相同的。

关于haskell - 在 Haskell 中表达一系列脚本化的 Python 字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com