以下表示缩放到 size 的 org-mode 图片width="300"。当我在浏览器中预览我的文档时,图像被成功地调整为 300px 宽度;但是,当我使用C-c C-x C-v(ie, org-toggle-inline-images)内联预览图像时,图像会显示但无法调整为宽度 300px。
#+ATTR_HTML: width="300"
[[file:/path/to/picture.png]]
Run Code Online (Sandbox Code Playgroud)
问题:如何将内联组织模式图像重新缩放到特定宽度?
目标:构造一个ClojureScript函数,该函数接受一个字符串s并返回带有名称的唯一通道(str s "-chan")(如果该通道不存在,则创建它).这是我的尝试:
(defn string-channel
[s]
(let [chan-name (symbol (str s "-chan"))]
(defonce chan-name (chan))
chan-name))
Run Code Online (Sandbox Code Playgroud)
这会产生错误.我如何实现这一目标?请注意,由于我在ClojureScript中,eval如果解决方案涉及宏,我无法使用该构造.
请考虑以下OpenGL代码段:
GLuint vao;
glCreateVertexArrays(1, glBindVertexArray(&vao));
Run Code Online (Sandbox Code Playgroud)
我的印象是这段代码的作用是什么
GLuint最终将指向OpenGL顶点数组对象.这个指针的名字是vao.mallocC或newC++).这样做的方法是通过该功能glCreateVertexArrays.此函数还使指针vao指向顶点数组对象.我的理解是否正确?如果是这样,在(1)中,为什么指针的类型GLuint没有明确定义为指针类型(例如*在C/C++中或使用OpenGL类型GLintptr)?
来自流行的optparse库的介绍性代码片段:
data Sample = Sample
{ hello :: String
, quiet :: Bool }
sample :: Parser Sample
sample = Sample
<$> strOption -- Q1
( long "hello"
<> metavar "TARGET" -- Q2
<> help "Target for the greeting" )
<*> switch
( long "quiet"
<> help "Whether to be quiet" )
Run Code Online (Sandbox Code Playgroud)
有关我的问题/疑惑,请参阅代码段中的注释.
Q1:如何将它<$>用作类型构造函数的第一个参数Sample?我认为这个操作必须在函数和仿函数之间使用.
Q2:<>此代码段中使用的操作是什么?
考虑
ioFunction :: String -> IO ()
ioFunction str = do putStrLn str
putStrLn "2"
Run Code Online (Sandbox Code Playgroud)
这里,ioFunction从数学的角度来看,是一个函数,它接受一个输入并返回一个类型的值IO ().我认为这意味着什么.也就是说,从数学的角度来看,这个函数返回一个值,而不是别的; 特别是,它不会打印任何东西.
这是否意味着Haskell使用IO monad进行命令性副作用的方式(在这种情况下:运行此函数将首先打印str,然后按顺序打印"2")纯粹是GHC实现细节,没有任何内容做数学(在某种意义上甚至是Haskell)这个术语的含义?
编辑:为了使这个问题更清楚,我的意思是,例如,以下两个函数之间的数学观点有什么不同:
ioFunction1 :: String -> IO ()
ioFunction1 str = do putStrLn str
putStrLn "2"
ioFunction2 :: String -> IO ()
ioFunction2 str = do return ()
Run Code Online (Sandbox Code Playgroud)
似乎答案是否定的,因为 - 从数学的角度来看 - 它们都作为输入a String并返回类型的值(可能是相同的值)IO ().这不是这种情况吗?
假设我们有一个_在任意位置的列表.例如:(a b c _ e f).我试图写一个宏其中,对于这样一个列表,找到_并用另一个值(比方说,替换它z)(a b c z e f).
对此最好的方法是什么?
我知道Haskell具有参数化的数据类型:
data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)
但有没有办法限制a可以表示的类型?特别是,我想创建一个类型
data Tag a = Tag a
Run Code Online (Sandbox Code Playgroud)
这样a可以采取两种类型TagPrimitive 或类型TagComplex(但是,我不希望它是可能的,a是的类型,比方说,Integer或String什么的,让我的程序没有意义).
这可能吗?
假设我有一个 Haskell 记录
data HaskellRecord = HaskellRecord {
_key1 :: Maybe String
, _key2 :: Maybe String
, _key3 :: Maybe String
}
Run Code Online (Sandbox Code Playgroud)
有没有办法构造函数
getKey :: HaskellRecord -> String -> Maybe String
Run Code Online (Sandbox Code Playgroud)
这样,与
let haskellRecord = HaskellRecord { _key1 = Just "value1"
, _key2 = Just "value2"
, _key3 = Just "value3"
}
Run Code Online (Sandbox Code Playgroud)
然后
getKey haskellRecord "value1" == Just "_key1"
getKey haskellRecord "value2" == Just "_key2"
getKey haskellRecord "value3" == Just "_key3"
getKey haskellRecord "value4" == Nothing
Run Code Online (Sandbox Code Playgroud) 考虑代码段:
ClassName* p;
p = new ClassName;
Run Code Online (Sandbox Code Playgroud)
据我了解,我们正在从堆中分配内存到存储*p.
但现在考虑:
ClassName C;
Run Code Online (Sandbox Code Playgroud)
问题:如果不是从堆中,内存C来自哪里?