我知道一个Haskell模块名称,但我无法弄清楚它是在什么包中定义的.这很糟糕,因为如果没有暴露这个模块的包,我就无法编译.
具体来说,我无法找到Text.Regex,但我想知道如何解决这个问题.
动机
我想找到一种方法来采取任意颜色并使其变暗一些阴影,这样我就可以以编程方式创建从一种颜色到较轻版本的漂亮渐变.渐变将用作UI中的背景.
可能性1
显然,我可以将RGB值分开并逐个增加一定量.这实际上是我想要的吗?
可能性2
我的第二个想法是将RGB转换为HSV/HSB/HSL(色调,饱和度,值/亮度/亮度),稍微增加亮度,稍微降低饱和度,然后将其转换回RGB.这一般会产生预期的效果吗?
我需要帮助理解一些C++运算符重载语句.该类声明如下:
template <class key_t, class ipdc_t>
class ipdc_map_template_t : public ipdc_lockable_t
{
...
typedef map<key_t,
ipdc_t*,
less<key_t>> map_t;
...
Run Code Online (Sandbox Code Playgroud)
该类的创建者为内部地图结构创建了一个迭代器:
struct iterator : public map_t::iterator
{
iterator() {}
iterator(const map_t::iterator & it)
: map_t::iterator(it) {}
iterator(const iterator & it)
: map_t::iterator(
*static_cast<const map_t::iterator *>(&it)) {}
operator key_t() {return ((this->operator*()).first);} // I don't understand this.
operator ipdc_t*() const {return ((this->operator*()).second);} // or this.
};
Run Code Online (Sandbox Code Playgroud)
并且begin()和end()返回地图的begin()和end():
iterator begin() {IT_ASSERT(is_owner()); return map.begin();}
iterator end() {return map.end();}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我有一个迭代器,我如何使用这些重载来获取密钥和值?
ipdc_map_template_t::iterator iter;
for( iter = my_instance.begin(); …Run Code Online (Sandbox Code Playgroud) 在同一语法中解析有效日期和数字的最简单(最短,最少规则,没有警告)的方法是什么?我的问题是匹配有效月份(1-12)的词法分析器规则将匹配任何1-12的出现.所以,如果我只想匹配一个数字,我需要一个解析规则,如:
number: (MONTH|INT);
Run Code Online (Sandbox Code Playgroud)
当我为日和年添加词法分析规则时,它变得更加复杂.我想要一个像这样的日期解析规则:
date: month '/' day ( '/' year )? -> ^('DATE' year month day);
Run Code Online (Sandbox Code Playgroud)
我不关心月,日和年是解析还是词法分析器规则,只要我最终得到相同的树结构.我还需要能够识别其他地方的数字,例如:
foo: STRING OP number -> ^(OP STRING number);
STRING: ('a'..'z')+;
OP: ('<'|'>');
Run Code Online (Sandbox Code Playgroud) 以下代码段应该采用PROJECT的值(在Makefile中定义)并创建包含文件名.例如,如果PROJECT = classifier,那么最后它应该为PROJECTINCSTR生成classifier_ir.h
我发现只要我不在后缀中使用下划线,此代码就可以正常工作.但是,使用下划线不是可选的 - 我们的代码库在任何地方都使用它们.我可以解决这个问题,因为PROJECT的值有限,但我想知道如何使用下划线使下面的代码段真正起作用.可以逃脱吗?
#define PROJECT classifier
#define QMAKESTR(x) #x
#define MAKESTR(x) QMAKESTR(x)
#define MAKEINC(x) x ## _ir.h
#define PROJECTINC MAKEINC(PROJECT)
#define PROJECTINCSTR MAKESTR(PROJECTINC)
#include PROJECTINCSTR
Run Code Online (Sandbox Code Playgroud)
编辑:编译器应该尝试包含classifier_ir.h,而不是PROJECT_ir.h.
对于从Java迁移的任何人来说,这必须是一个经典的.NET问题.
.NET似乎没有直接等同于java.io.StreamTokenizer,但是JLCA提供了一个试图实现它的SupportClass.我相信JLCA还提供了一个Tokenizer SupportClass,它以String作为源,我认为StreamTokenizer是派生出来的,但事实并非如此.
对流和字符串进行令牌化的首选方法是什么?还是有一个?如何在.Net中标记流?我想拥有java.io.StreamTokenizer提供的灵活性.有什么想法吗?
我已经习惯了使用VS2005和2008 - 使用msbuild等,但我继承了一组目前必须保留在vc6.0中的项目.我不喜欢在开发者工作室和建筑中打开每个项目.我更喜欢构建表单命令行(我正在自动化构建).这可能吗?
我已经尝试过nmake实用程序,但我仍然需要打开项目并保存/导出make文件.如果项目发生变化,这很乏味 - 每次我都要保存make文件.nmake似乎工作,但是当我在目录树中更改项目的位置时出现了问题(我从svn中检出了一个新的干净目录来尝试构建).它似乎有硬编码路径,但我必须检查 - 它可能是一个不同的问题.
还有其他选择吗?
最终我将这些迁移到2008年,但目前这不是一个选择.
模型视图控制器有哪些替代"设计方法"?MVC似乎很流行(SO是用它构建的,我知道的很多)但是它是唯一使用的方法吗?
我正在使用PHP和xpath从API调用解析XML结果.
$dom = new DOMDocument();
$dom->loadXML($response->getBody());
$xpath = new DOMXPath($dom);
$xpath->registerNamespace("a", "http://www.example.com");
$hrefs = $xpath->query('//a:Books/text()', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookTitle[$i] = $hrefs->item($i)->data;
}
$hrefs = $xpath->query('//a:Books', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookDewey[$i] = $hrefs->item($i)->getAttribute('DeweyDecimal');
}
Run Code Online (Sandbox Code Playgroud)
这有效,但有一种方法我可以从一个查询访问文本和属性?如果是这样,一旦执行查询,您如何获得这些项目?