我想用Lisp方言实现一个Lisp解释器,主要是作为一种学习练习.我被抛弃的一件事就是这个领域有多少选择.首先,我对学习一段时间内的一些Lisps(如Scheme或Common Lisp)更感兴趣.我不想使用Clojure为我已经使用它的纯粹事实这样做.:-)
在解析时,其中一种口味比其他口味更好吗?你认为在Common Lisp中实现Scheme是一个好主意(反之亦然)?或者两者之间是否会有足够的差异让我失望?
如果它有所不同,我想要一些跨平台的东西.我有一台Windows PC,一台Mac机和一个Linux机箱,我最终可以在其中任何一个上写这个.
有没有办法在Objective-C中创建像这个C#属性的属性?
public int prop { get; protected set;}
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我希望能够从类外部获取值,但只能从类中设置值.
我没有意识到这一点,但显然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(' ').
现在有没有什么好的理由在C++中使用C-strings?我的教科书在某些方面的例子中使用它们,我觉得使用std :: string会更容易.
所以我至少有两位教授提到回溯会使算法不确定,而不会对其原因作出太多解释.我想我明白这是怎么发生的,但我无法用语言表达.有人能给我一个简明的解释原因吗?
我对我本地存储库中的错误分支进行了一些开发.我做了一个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中的方式.最好的方法是什么?
什么是用于保护数据库中密码的简单加密方案?我不一定需要任何超安全的东西,也不需要任何快速闪电的东西,但那些东西会很好.首先,我只想要一些易于实现而不会非常缓慢或不安全的东西.
我正在与Python开发团队合作,他在Python编程方面经验丰富,但现在正在努力学习TDD.由于我自己有使用TDD的经验,我被要求做一个介绍.主要是,我只是想看到这方面的文章,以便我可以看到其他人如何教TDD并获得一些材料的想法放在我的演示文稿中.
我希望这个介绍适用于Python,但只要示例易于阅读并且概念很容易转移到Python,任何语言都可以.
在Python中,我可以这样做:
t = (1, 2)
a, b = t
Run Code Online (Sandbox Code Playgroud)
......并且a将为1,b将为2.假设我'(1 2)在Scheme中有一个列表.有没有办法做类似的事情let?如果它有所作为,我正在使用Racket.
在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,最好只有一个查询?
oracle ×2
python ×2
scheme ×2
algorithm ×1
branch ×1
c ×1
c# ×1
c++ ×1
c-strings ×1
common-lisp ×1
database ×1
datetime ×1
git ×1
github ×1
lisp ×1
list ×1
objective-c ×1
oracle10g ×1
parsing ×1
passwords ×1
performance ×1
properties ×1
racket ×1
revert ×1
sql ×1
sql-loader ×1
sql-server ×1
stl ×1
strftime ×1
string ×1
tdd ×1
testing ×1
unit-testing ×1