如何在haskell中打印引号?我想是的
putStrLn "\""
Run Code Online (Sandbox Code Playgroud)
但它不是:(我知道这是一个简单的问题,但我无法在任何地方找到它.
澄清一下,结果应该是简单的:"
谢谢
表示为32位无符号整数的数字4将是
在大字节序计算机上:00000000 00000000 00000000 00000100(最高有效字节在前)
在小型字节序计算机上:00000100 00000000 00000000 00000000(最高有效字节在后)
作为8位无符号整数,在两台计算机上均表示为00000100。
现在,当将8位uint转换为32位时,我总是认为在大型endian机器上,这意味着在现有字节的前面粘贴24个零,如果该机器是little endian,则在末尾附加24个零。但是,有人指出,在这两种情况下,零都在前面,而不是后面。但这不意味着在小尾数上的00000100将成为最高有效字节,从而导致很大的数字吗?请解释我错了。
考虑以下代码:
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 …
我有一个向量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)
如何在不使用循环的情况下实现此目的?有没有一种聪明的方法来做索引?
有人可以解释一下原因:
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.这是为什么?我希望这些表达式是等价的吗?
我喜欢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方法作为答案:)
谢谢
c ×2
haskell ×2
arrays ×1
bit-shift ×1
endianness ×1
formatting ×1
matlab ×1
matrix ×1
quotes ×1
ruby ×1