红宝石的正则表达式有一些选项(例如i,x,m,o).i例如,意味着忽略大小写.
该o选项意味着什么?在ri Regexp,它表示只o执行#{}插值一次.但是当我这样做时:
a = 'one'
b = /#{a}/
a = 'two'
Run Code Online (Sandbox Code Playgroud)
b不改变(它停留/one/).我错过了什么?
据我所知,->有种*->*->*,((->) r)有种*->*.
假设有一种类型(a->b->c),有没有办法表示(a->b->)?
我试过,((->) a ((->) b))但这是错误的.
我试过了:
type Kab a b c = (a -> b -> c) -- it is ok
Run Code Online (Sandbox Code Playgroud)
但它无法使用Kab实例声明:
instance KClass (Kab a b) where -- error
Run Code Online (Sandbox Code Playgroud)
我发现作品的唯一方法是声明data:
data Kab a b c = Kab (a -> b -> c)
instance KClass (Kab a b) where ..
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用数据,我必须解开Kab,而我的想法是在本机函数类型上实现KClass.
那怎么办呢?
众所周知,数组名称不能分配,句子如:
char * array[], * point;
array = point; /* wrong */
array++; /* wrong */
Run Code Online (Sandbox Code Playgroud)
但是main(int argc, char * argv[]),argv++好的,运作良好.我错过了什么?
一个define句子是:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
Run Code Online (Sandbox Code Playgroud)
我被告知目的是有点对齐.
我想知道它是如何工作的,提前.
我想做的事情如下:
makeList n
| n == 0 = [0 ..]
| n > 0 = repeat $ makeList (n - 1)
| n < 0 = undefined
Run Code Online (Sandbox Code Playgroud)
代码错误,因为它的返回类型取决于值n.有没有办法实现这样的东西?
此外,我想构建一个N维列表,其中每个元素都包含其索引,如:
oneD = [0 ..]
twoD = map (\x -> map (\y -> (x, y)) [0 ..]) [0..]
threeD = .. -- hard to code
Run Code Online (Sandbox Code Playgroud)
是否有一种优雅的方法来构建高维列表?