问题列表 - 第26069页

增量宏定义是否可行?

我经常发现以下类型的增量定义很有用:

(define (foo) (display "bar"))
(foo)
;prints bar
(define foo (let ((bar foo))
              (lambda ()
                (display "foo")
                (bar))))

(foo)
;prints foobar
Run Code Online (Sandbox Code Playgroud)

如何使用宏预先形成此类增量定义?我无法让let-syntax提供相同的功能.

目前我使用plt方案,但也希望在不同的lisp实现中看到答案.

编辑:

天真的我想做以下事情:

(define-syntax foo
  (syntax-rules ()
    ((_) (display "bar"))))

(define-syntax foo
  (let-syntax ((old-foo (syntax-rules () ((_) (foo)))))
    (syntax-rules ()
      ((_) (begin
             (display "foo")
             (old-foo))))))
Run Code Online (Sandbox Code Playgroud)

将朴素宏翻译为工作plt方案宏:

(require-for-syntax scheme/base) 
(define-syntax foo
  (syntax-rules ()
    [(foo) (display "bar")]))
(define-syntax foo
  (let ([old (syntax-local-value #'foo)])
    (lambda (stx)
      #`(begin #,((syntax-rules ()
               [(_) (begin (display "foo"))]) stx)
             #,(old #'(_))))))
(foo)
Run Code Online (Sandbox Code Playgroud)

如果我错过了一个更好的方法让我知道.

lisp macros scheme

6
推荐指数
1
解决办法
447
查看次数

有哪些策略可以与开发人员团队维护通用数据库架构而没有DBA?

我很好奇其他人如何在没有DBA的情况下解决了许多(10+)开发人员维护和同步数据库更改的问题?我的意思是,基本上,如果有人想要对数据库进行更改,那么采取哪些策略呢?(即我已经创建了一个'Car'模型,现在我想将适当的DDL应用于数据库等.)

我们主要是一个Python商店,我们的ORM是SQLAlchemy.以前,我们用这样的方式编写了我们的模型来使用我们的ORM创建模型,但是我们最近放弃了这个模型,因为:

  • 我们无法使用ORM跟踪更改
  • ORM的状态与数据库不同步(例如,主要与索引和唯一约束相关的许多差异)
  • 除非开发人员通过电子邮件向团队记录数据库更改,否则无法审核数据库更改.

我们解决这个问题的方法是基本上有一个"看门人",他会检查数据库中的每个更改,并将所有接受的数据库更改应用到accepted_db_changes.sql文件中,从而需要进行任何数据库更改的开发人员将他们的请求放入proposed_db_changes.sql文件中.我们检查这个文件,并且,当它更新时,我们都将更改应用到我们的开发机器上的个人数据库.我们不在模型上创建索引或约束,它们明确地应用于数据库.

我想知道维护数据库模式的一些策略是什么,如果我们看起来合理的话.

谢谢!

python database postgresql sqlalchemy database-schema

9
推荐指数
1
解决办法
867
查看次数

Vector insert()导致程序崩溃

这是我所拥有的函数的第一部分导致我的程序崩溃:

vector<Student> sortGPA(vector<Student> student) {
    vector<Student> sorted;
    Student test = student[0];
    cout << "here\n";
    sorted.insert(student.begin(), student[0]);
    cout << "it failed.\n";
         ...
Run Code Online (Sandbox Code Playgroud)

它在sorted部件处崩溃,因为我可以在屏幕上看到"here"但不是"它失败了".出现以下错误消息:

Debug Assertion Failed!

(a long path here...)

Expression: vector emplace iterator outside range

For more information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
Run Code Online (Sandbox Code Playgroud)

我不确定现在是什么导致了这个问题,因为我在其他地方有一个类似的代码行student.insert(student.begin() + position(temp, student), temp);没有崩溃(position返回一个int并且temp是struct Student的另一个声明).我该怎么做才能解决问题,第一个插入与第二个插入有什么不同?

c++ crash insert vector

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

开源回合制战略游戏引擎?

有人知道基于回合制的战略游戏引擎是开源的吗?

game-engine

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

你会如何创建一个包含所有UTF-8字符的字符串?

有许多方法可以表示+1百万个UTF-8字符.用macron(?)取拉丁语首都"A" .这是unicode代码点U+0100,十六进制数0xc4 0x80,十进制数196 128和二进制数11000100 10000000.

我想创建一个前65,535个UTF-8字符的集合,用于测试应用程序.这些都是代码点U+FFFF(byte3)之前的unicode字符.

是否可以执行类似for($x=0)循环的操作,然后将结果十进制转换为另一个基数(如十六进制),这将允许创建匹配的unicode字符?

我可以使用以下内容创建值?:

$char = "\xc4\x80";
// or
$char = chr(196).chr(128);
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将其转变为自动化流程.

// fail!
$char = "\x". dechex($a). "\x". dexhex($b);
Run Code Online (Sandbox Code Playgroud)

php string unicode utf-8

5
推荐指数
1
解决办法
4280
查看次数

使用静态成员函数而不是等效的非静态成员函数的优点?

我想知道当存在非静态等价物时使用静态成员函数是否有任何优点.它会导致更快的执行(因为不必关心所有成员变量),或者可能更少使用内存(因为没有包含在所有实例中)?

基本上,我正在看的函数是一个实用函数,用于旋转一个整数数组,表示像素颜色围绕任意中心点的任意度数.它被放置在我的抽象Bullet基类中,因为只有子弹将使用它,我不希望在某个实用程序类中调用它的开销.它有点太长了,并且在每个派生的子弹类中使用,使得内联可能不是一个好主意.您如何建议我定义此功能?作为Bullet的静态成员函数,Bullet的非静态成员函数,或者可能不作为Bullet的成员但在Bullet.h中的类外定义?各有哪些优缺点?

c++ performance static-methods

7
推荐指数
1
解决办法
1万
查看次数

如何配置多个Ubuntu Python安装以避免App Engine的SSL错误?

我有Karmic Koala默认安装了Python 2.6.

但是我无法运行任何Python App Engine项目,因为它们需要Python 2.5和python ssl.

要安装ssl,我首先安装了python2.5-dev,同时遵循我在其他地方找到的一些说明.

sudo apt-get install libssl-dev
sudo apt-get install python-setuptools
sudo apt-get install python2.5-dev 
sudo easy_install-2.5 pyopenssl
Run Code Online (Sandbox Code Playgroud)

但是,我担心这对我的Ubuntu安装不利,因为当你在命令行输入'python'时,Ubuntu希望看到Python的2.6版本.相反,它说'2.5.5'.

但是App Engine仍然无法工作.每当我尝试运行我的Python应用程序时,我都会继续遇到与SSL相关的错误:

AttributeError: 'module' object has no attribute 'HTTPSHandler'
Run Code Online (Sandbox Code Playgroud)

UPDATE1:通过键入以下内容,检查是否通过这些命令实际安装了SSL:

$ python2.5
Python 2.5.5 (r255:77872, Apr 29 2010, 23:59:20) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named ssl
>>> 
Run Code Online (Sandbox Code Playgroud)

如您所见,SSL仍未安装,这解释了持续的App …

python ssl google-app-engine ubuntu-9.10

5
推荐指数
1
解决办法
4757
查看次数

在模拟时钟中查找小时和分针之间的角度

我最近接受了这个采访问题:

给定12小时模拟时钟,以度为单位计算小时和分针之间的较小角度.尽你所能精确.

我想知道什么是最简单,最可读,最精确的算法.欢迎使用任何语言的解决方案(但如果您认为有必要,请稍微解释一下).

math floating-point precision angle

33
推荐指数
3
解决办法
6万
查看次数

双边框,中间没有空格

我想制作一个双边框,但两者之间没有空格,双边框应该是不同的颜色.我尝试使用图像,但我认为CSS可能可以为我执行这项工作,我搜索网但很难找到任何接近.

我想要的是总共2px虚线边框,顶部颜色为#a4a4a4,底部颜色为#474747.

知道我怎么能这样做而不是创建2个div?

css

0
推荐指数
1
解决办法
1519
查看次数

使用CRTP和typedef的"继承"类型

以下代码无法编译.我收到一条错误消息:错误C2039:'Asub':不是'C'的成员

有人能帮助我理解这个吗?

试过VS2008和2010编译器.

template <class T>
class B
{
    typedef int Asub;

public:
 void DoSomething(typename T::Asub it)
 {

 }
};

class C : public B<C>
{
public:
 typedef int Asub;

};

class A
{
public:
 typedef int Asub;

};


int _tmain(int argc, _TCHAR* argv[])
{
 C theThing;
 theThing.DoSomething(C::Asub());

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates

5
推荐指数
1
解决办法
945
查看次数