小编ДМИ*_*КОВ的帖子

使用具有各种报价级别和空格的变量构建命令字符串

我有一个运行的脚本curl.-H如果字符串不为空,我希望能够选择添加参数.引用和空格的级别有多复杂.

caption="Test Caption"

if [ "${caption}" != "" ]; then 
    CAPT=-H "X-Caption: ${caption}"
fi

curl -A "$UA" -H "Content-MD5: $MD5" -H "X-SessionID: $SID" -H "X-Version: 1"  $CAPT http://upload.example.com/$FN
Run Code Online (Sandbox Code Playgroud)

这个想法是CAPT变量为空,或者包含与其他变量相同形式的所需-H头,例如, -H "X-Caption: Test Caption"

问题是在运行时,它将赋值解释为要执行的命令:

$bash -x -v test.sh
+ '[' 'Test caption' '!=' '' ']'
+ CAPT=-H
+ 'X-Caption: Test caption'
./test.sh: line 273: X-Caption: Test caption: command not found
Run Code Online (Sandbox Code Playgroud)

我已经尝试在代码之前重置IFS,但它没有什么区别.

variables bash quotes spaces

3
推荐指数
1
解决办法
709
查看次数

相当于Haskell scanl/scanr的F#

有一个F#等价的Haskell scanl/ scanr?这些函数执行折叠,但它们以列表的形式报告所有中间累加器状态.

f# haskell fold

3
推荐指数
1
解决办法
300
查看次数

映射需要IO在列表上的函数的更好方法

最近我有一个字符串列表,需要独立遍历每个字符串并执行一些IO功能.

所以我基本上就是这样:

goOverList :: [String] -> IO ()
goOverList (x:[]) = do
    putStrLn x
goOverList (x:xs) = do
    goOverList [x]
    goOverList xs

main = do
    let myList = ["first", "second", "third"]
    goOverList myList
Run Code Online (Sandbox Code Playgroud)

我IO有点复杂,但这是它的要点(需要有一个功能超过列表,并IO根据列表成员做)我希望有人可以告诉我如何更好地做到这一点.

haskell

3
推荐指数
2
解决办法
518
查看次数

获得x以下的素数

我正在尝试编写一个返回给定数字下所有素数列表的过程.

例如:

Prelude>primes 8  
[2,3,5,7]  
Run Code Online (Sandbox Code Playgroud)

当我尝试加载文件时,Parse error in pattern Failed, modules loaded: none.如果有人能指出我正确的方向,我将不胜感激.

primes :: Int -> [Int]
primes x < 2 = []
primes x | isPrime x == True = primes (x - 1) ++ x
         | otherwise = primes (x - 1)

isPrime :: Int -> Bool
isPrime x | x < 2 = False
          | x == 2 || x == 3 = True
          | divEven x == True = False
          | divOdd x …
Run Code Online (Sandbox Code Playgroud)

primes haskell

3
推荐指数
1
解决办法
279
查看次数

列出monad:`>> =`和`return`行为之间的区别

我刚刚开始使用monad,我无法弄清楚为什么这两个表达式的评估方式不同:

ghci> [1,2] >>= \n -> ['a','b'] >>= \ch -> return (n,ch)
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]


ghci> return ([1,2],['a','b'])
([1,2],"ab")
Run Code Online (Sandbox Code Playgroud)

monads haskell

3
推荐指数
2
解决办法
195
查看次数

我可以告诉GHC在没有实际编译代码的情况下检查我的代码吗?

我正在对我的程序中的类型进行原型设计和处理,我目前只ghc --make在想要进行类型检查时使用.但是,此命令还花费时间编译和链接我不需要的实际可执行文件.是否有一些我可以传递的标志ghc告诉它只做类型检查?

haskell ghc

3
推荐指数
1
解决办法
482
查看次数

传递隐式-在Scala中可能吗?

假设我有几个功能:

func1 : A => B

func2:  B => C

func3:  C => D
Run Code Online (Sandbox Code Playgroud)

我想在需要时以通用方式协调功能。

假设我需要从转换为A,然后B致电func1。但是,当我需要从转换为时A,D我希望将这些功能组合在一起。这样的事情在动态的观念中可能吗?

scala function implicit

3
推荐指数
1
解决办法
276
查看次数

attoparsec中的条件先行

假设有一个数据结构表示带有注释的文本.

data TWC
  = T Text TWC -- text
  | C Text TWC -- comment
  | E -- end
  deriving Show
Run Code Online (Sandbox Code Playgroud)

因此字符串就像

"Text, {-comment-}, and something else"
Run Code Online (Sandbox Code Playgroud)

可编码为

T "Text, " (C "comment" (T ", and something else" E))
Run Code Online (Sandbox Code Playgroud)

用于评论chunk和for的解析器E非常简单:

twcP :: Parser TWC
twcP = eP <|> cP <|> tP

cP :: Parser TWC
cP = do
  _ <- string "{-"
  c <- manyTill anyChar (string "-}")
  rest <- cP <|> tP <|> eP
  return (C (pack …
Run Code Online (Sandbox Code Playgroud)

haskell attoparsec

3
推荐指数
1
解决办法
197
查看次数

列表到元组转换列表

我想转换[z,z,a,z,z,a,a,z]为[{z,2},{a,1},{z,2},{a,2},{z,1}].我该怎么做?

所以,我需要积累前一个值,它的计数器和元组列表.

我创造了纪录

-record(acc, {previous, counter, tuples}).
Run Code Online (Sandbox Code Playgroud)

重新定义

listToTuples([]) -> [];
listToTuples([H | Tail]) -> 
    Acc = #acc{previous=H, counter=1},
    listToTuples([Tail], Acc).
Run Code Online (Sandbox Code Playgroud)

但后来我遇到了麻烦

listToTuples([H | Tail], Acc) ->   
    case H == Acc#acc.previous of
        true  ->
        false ->
    end.
Run Code Online (Sandbox Code Playgroud)

erlang

2
推荐指数
2
解决办法
1308
查看次数

从数组中删除元素

例如我有数组:

$arr = array('a', 'b', 'c', 'd', 'e', 'f');
Run Code Online (Sandbox Code Playgroud)

如何('a', 'b', 'c')从阵列中删除?

php arrays

2
推荐指数
1
解决办法
431
查看次数

标签 统计

haskell ×6

arrays ×1

attoparsec ×1

bash ×1

erlang ×1

f# ×1

fold ×1

function ×1

ghc ×1

implicit ×1

monads ×1

php ×1

primes ×1

quotes ×1

scala ×1

spaces ×1

variables ×1