小编red*_*Fur的帖子

在Haskell中打印双引号

如何在haskell中打印引号?我想是的

putStrLn "\"" 
Run Code Online (Sandbox Code Playgroud)

但它不是:(我知道这是一个简单的问题,但我无法在任何地方找到它.

澄清一下,结果应该是简单的:" 谢谢

quotes formatting haskell

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

转换和字节顺序

表示为32位无符号整数的数字4将是

在大字节序计算机上:00000000 00000000 00000000 00000100(最高有效字节在前)

在小型字节序计算机上:00000100 00000000 00000000 00000000(最高有效字节在后)

作为8位无符号整数,在两台计算机上均表示为00000100。

现在,当将8位uint转换为32位时,我总是认为在大型endian机器上,这意味着在现有字节的前面粘贴24个零,如果该机器是little endian,则在末尾附加24个零。但是,有人指出,在这两种情况下,零都在前面,而不是后面。但这不意味着在小尾数上的00000100将成为最高有效字节,从而导致很大的数字吗?请解释我错了。

c endianness

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

haskell函数取2个参数返回函数,它接受一个参数?

考虑以下代码:

type Graph = (Char, Function) 
type Function = Char -> Int 
doThingsWithGraph :: Graph -> String
func :: Function 
graph :: Graph

main = do  x <- getChar
           y <- getChar
           let graph = (x, func)
           putStrLn $ doThingsWithGraph graph
Run Code Online (Sandbox Code Playgroud)

执行doThingsWithGraph现在无关紧要.现在的问题是,func输出还取决于我从用户那里得到的第二个字符,但我不知道如何将它传递给它.我无法将其作为参数传递,因为func是由第三方实现的,我无法更改类型.因此,如果haskell有全局变量,y那么它func的实现将是这样的:

func char 
       |isDigit char = digitToInt char + digitToInt y
       |otherwise    = digitToInt y
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,因为func不知道是什么y,但这是它应该做什么的想法.所以y我需要以某种方式让我们func知道的价值(这是我在第二行中从用户那里得到的main).我不能在getLine里面做,func因为这与我无法改变的数据类型不一致(大框架的一部分).有任何想法吗?也许一些辅助功能,可替代func …

haskell

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

从向量中获取向量矩阵

我有一个向量x = [1,3,5,6,7],我想生成一个矩阵y,其中行y(k)= x(k:k + 2).因此,在这种情况下得到的矩阵将是

1 3 5
3 5 6
5 6 7
Run Code Online (Sandbox Code Playgroud)

如何在使用循环的情况下实现此目的?有没有一种聪明的方法来做索引?

arrays matlab matrix

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

为什么组合uint8_t的两个班次产生不同的结果?

有人可以解释一下原因:

x = x << 1;
x = x >> 1;
Run Code Online (Sandbox Code Playgroud)

和:

x = (x << 1) >> 1;
Run Code Online (Sandbox Code Playgroud)

在C中产生不同的答案?x是*uint8_t*类型(无符号1字节长整数).例如,当我128 (10000000)在第一种情况下传递它时,它会返回0(正如预期的那样,最重要的位会掉出来)但在第二种情况下它会返回原始的128.这是为什么?我希望这些表达式是等价的吗?

c bit-shift integer-promotion

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

带空字符串的条件赋值

我喜欢Ruby中的条件赋值语法并且一直使用它:

x = this_var || that_var
Run Code Online (Sandbox Code Playgroud)

现在我正在使用几个API,它们为不存在的值返回空字符串.由于在Ruby中空字符串的计算结果为true,因此我无法再使用上述语法来设置默认值.当我有几个默认值"级别"时会变得更糟,例如"如果此var不存在则将其设置为该var,如果不存在,则将其设置为另一个var".所以我最终这样做:

x = if this_var.present?
       this_var
    elsif that_var.present?
       that_var
    else
       last_resort
    end
Run Code Online (Sandbox Code Playgroud)

.present?方法有所帮助,但并不多.我怎么用更简洁的方式写这样的东西?

我正在使用Rails 4,所以欢迎Rails方法作为答案:)

谢谢

ruby ruby-on-rails

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