小编Jas*_*ker的帖子

Lisp在解析方面更好吗?

我想用Lisp方言实现一个Lisp解释器,主要是作为一种学习练习.我被抛弃的一件事就是这个领域有多少选择.首先,我对学习一段时间内的一些Lisps(如Scheme或Common Lisp)更感兴趣.我不想使用Clojure为我已经使用它的纯粹事实这样做.:-)

在解析时,其中一种口味比其他口味更好吗?你认为在Common Lisp中实现Scheme是一个好主意(反之亦然)?或者两者之间是否会有足够的差异让我失望?

如果它有所不同,我想要一些跨平台的东西.我有一台Windows PC,一台Mac机和一个Linux机箱,我最终可以在其中任何一个上写这个.

lisp scheme parsing language-implementation common-lisp

20
推荐指数
1
解决办法
1377
查看次数

什么是C#中公共get/protected set属性的Objective-C等价物

有没有办法在Objective-C中创建像这个C#属性的属性?

public int prop { get; protected set;}
Run Code Online (Sandbox Code Playgroud)

从本质上讲,我希望能够从类外部获取值,但只能从类中设置值.

c# properties objective-c

19
推荐指数
1
解决办法
9629
查看次数

有没有办法在Python中使用类似strftime的函数用于1900年之前的日期?

我没有意识到这一点,但显然Python的strftime功能不支持1900年之前的日期:

>>> from datetime import datetime
>>> d = datetime(1899, 1, 1)
>>> d.strftime('%Y-%m-%d')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: year=1899 is before 1900; the datetime strftime() methods require year >= 1900
Run Code Online (Sandbox Code Playgroud)

我确信我可以自己做一些事情来做这件事,但我认为这个strftime功能是有原因的(而且还有一个原因,它不能支持1900年以前的日期).我需要能够支持1900年之前的日期.我只是使用str,但是有太多的变化.换句话说,它可能有也可能没有微秒,或者它可能有也可能没有时区.这有什么解决方案吗?

如果它有所不同,我这样做是为了我可以将数据写入文本文件并使用Oracle SQL*Loader将其加载到数据库中.

我基本上最终做了Alex Martelli的回答.这是一个更完整的实现:

>>> from datetime import datetime
>>> d = datetime.now()
>>> d = d.replace(microsecond=0, tzinfo=None)
>>> str(d)
'2009-10-29 11:27:27'
Run Code Online (Sandbox Code Playgroud)

唯一的区别str(d)是相当于d.isoformat(' ').

python oracle datetime strftime sql-loader

19
推荐指数
2
解决办法
6206
查看次数

为什么在c ++中使用c字符串?

现在有没有什么好的理由在C++中使用C-strings?我的教科书在某些方面的例子中使用它们,我觉得使用std :: string会更容易.

c c++ string stl c-strings

18
推荐指数
3
解决办法
6934
查看次数

为什么回溯使算法不确定?

所以我至少有两位教授提到回溯会使算法不确定,而不会对其原因作出太多解释.我我明白这是怎么发生的,但我无法用语言表达.有人能给我一个简明的解释原因吗?

language-agnostic algorithm performance non-deterministic

18
推荐指数
3
解决办法
2443
查看次数

如何将本地分支恢复到github中的状态?

我对我本地存储库中的错误分支进行了一些开发.我做了一个git branch没有下一个做的git checkout.命令看起来像这样:

#On branch development
git branch release-v0.2.0b
# changes and several commits
git push origin release-v0.2.0b
Run Code Online (Sandbox Code Playgroud)

那时我意识到我正在做错误的分支.我的github回购处于正常状态,但我当地的回购并非如此.我已将开发中的更改合并到release-v0.2.0b中,但我想将开发重置为我在github repo中的方式.最好的方法是什么?

git branch github revert

18
推荐指数
2
解决办法
3万
查看次数

简单的密码加密

什么是用于保护数据库中密码的简单加密方案?我不一定需要任何超安全的东西,也不需要任何快速闪电的东西,但那些东西会很好.首先,我只想要一些易于实现而不会非常缓慢或不安全的东西.

database language-agnostic passwords

17
推荐指数
5
解决办法
7736
查看次数

对于刚接触测试的有经验的程序员,TDD是否有任何优秀的在线教程?

我正在与Python开发团队合作,他在Python编程方面经验丰富,但现在正在努力学习TDD.由于我自己有使用TDD的经验,我被要求做一个介绍.主要是,我只是想看到这方面的文章,以便我可以看到其他人如何教TDD并获得一些材料的想法放在我的演示文稿中.

我希望这个介绍适用于Python,但只要示例易于阅读并且概念很容易转移到Python,任何语言都可以.

python testing tdd unit-testing

17
推荐指数
1
解决办法
6098
查看次数

什么是方案相当于元组解包?

在Python中,我可以这样做:

t = (1, 2)
a, b = t
Run Code Online (Sandbox Code Playgroud)

......并且a将为1,b将为2.假设我'(1 2)在Scheme中有一个列表.有没有办法做类似的事情let?如果它有所作为,我正在使用Racket.

scheme list racket iterable-unpacking

17
推荐指数
3
解决办法
5411
查看次数

是否有Oracle等效于SQL Server的OUTPUT INSERTED.*?

在SQL Server中,您可以执行以下操作:

INSERT INTO some_table (...) OUTPUT INSERTED.*
VALUES (...)
Run Code Online (Sandbox Code Playgroud)

这样您就可以插入任意的列/值集并获取这些结果.有没有办法在Oracle中这样做?

我能想到的最好的是:

INSERT INTO some_table (...)
VALUES (...)
RETURNING ROWID INTO :out_rowid
Run Code Online (Sandbox Code Playgroud)

...使用:out_rowid作为绑定变量.然后使用这样的第二个查询:

SELECT *
FROM some_table
WHERE ROWID = :rowid
Run Code Online (Sandbox Code Playgroud)

...但这与它返回列中的所有内容并不完全相同,而不仅仅是我插入的列.

有没有更好的方法来做到这一点,而不使用大量的PL/SQL,最好只有一个查询?

sql sql-server oracle oracle10g

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