小编Jas*_*ker的帖子

而语言

对于我的计算语言类的理论,我们得到了一个家庭作业,用一种语言来实现一段代码,该语言只有流控制的while语句(没有if语句).这主要是为了证明你可以只使用while循环编写图灵完备语言.

对于那些能理解语言语法的人,以下是语言规则:

S -> S;S | while C do S od | id := E

E -> E + T | T | E - T

T -> T * F | F | F / T

F -> id | cons | (E)

C -> E = E | E > E | E < E | E >= E | E <= E | E != E | C and C | C or C | not(C)
Run Code Online (Sandbox Code Playgroud)

这是从我的班级笔记中复制的,所以如果缺少或不正确,请不要责怪我! …

language-theory while-loop

23
推荐指数
3
解决办法
5040
查看次数

为什么Python中没有"和"和"或"运算符?

我没有意识到这一点,但显然andor关键字不是运营商.它们不会出现在python运算符列表中.出于纯粹的好奇心,这是为什么?如果他们不是运营商,他们究竟是什么?

python boolean language-design operators keyword

22
推荐指数
2
解决办法
3271
查看次数

我如何在Ruby中反省内容?

例如,在Python中,如果我想获取对象的所有属性,我可以做这样的事情:

>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
Run Code Online (Sandbox Code Playgroud)

或者,如果我想查看某些内容的文档,我可以使用帮助功能:

>>> help(str)
Run Code Online (Sandbox Code Playgroud)

有没有办法在Ruby中做类似的事情?

ruby introspection irb

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

有没有理由不让会员功能虚拟?

有没有真正的理由不在 C++中使成员函数虚拟化?当然,总会存在性能参数,但由于虚函数的开销相当低,因此在大多数情况下似乎并不存在.

在另一方面,我已经被咬了好几次与遗忘做一个功能的虚拟那应该是虚拟的.这似乎是一个比表现更大的争论.那么有没有理由不默认将成员函数设为虚拟?

c++ oop virtual-functions

21
推荐指数
5
解决办法
4521
查看次数

为什么Python将引用计数保持为False和True?

我正在查看hasattr内置函数的源代码,并注意到一些引起我兴趣的行:

Py_INCREF(Py_False);
return Py_False;

...

Py_INCREF(Py_True);
return Py_True;
Run Code Online (Sandbox Code Playgroud)

不是Py_FalsePy_True全球价值观?出于纯粹的好奇心,为什么Python保留这些变量的引用计数?

python reference-counting python-c-api

21
推荐指数
1
解决办法
1608
查看次数

如何使用SMTP发送附件?

我想编写一个使用Python的smtplib发送电子邮件的程序.我搜索了文档和RFC,但找不到任何与附件相关的内容.因此,我确信我错过了一些更高级别的概念.有人能告诉我附件如何在SMTP中工作吗?

python email smtp attachment smtplib

21
推荐指数
3
解决办法
5万
查看次数

我错过了LINQ的一些内容吗?

我似乎错过了一些关于LINQ的东西.对我来说,看起来它正在采用我最喜欢的SQL的一些元素,并将它们转移到C#语言中并将它们用于其他事情.

我的意思是,我可以看到在数据库以外的东西上使用类似SQL的语句的好处.但是,如果我想编写SQL,那么,为什么不编写SQL并将其保留在C#之外呢?我在这里错过了什么?

c# sql linq

20
推荐指数
4
解决办法
1743
查看次数

C++删除指向指针的指针

所以我有一个指针数组的指针.如果我这样删除它:

delete [] PointerToPointers;
Run Code Online (Sandbox Code Playgroud)

那会删除所有指向的指针吗?如果没有,我是否必须遍历所有指针并删除它们,或者有更简单的方法吗?我的google-fu似乎没有给我任何关于这个问题的好答案.

(是的,我知道我需要使用一个向量.这是学校中"赶上C++"类型作业之一.)

c++ pointers

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

向我解释尾调用优化的重要性以及Python需要它的原因

显然,对于Python是否需要尾调用优化,存在很大的争议.当有人向Guido发送SICP副本时,这个问题就出现了,因为他没有"得到它".我和Guido在同一条船上.我理解尾调用优化的概念.我真的想不出Python真正需要它的任何理由.

为了让我更容易理解,有人可以给我一些代码片段,使用TCO可以大大简化吗?

python tail-recursion tail-call-optimization

20
推荐指数
3
解决办法
1464
查看次数

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
查看次数