我对Macros非常感兴趣,刚刚开始了解它的真正力量.请帮我收集宏系统的一些很好的用法.
到目前为止,我有这些结构:
模式匹配:
安德鲁赖特和布鲁斯杜巴.Scheme的模式匹配,1995
Prolog精神的关系:
Dorai Sitaram.在schelog中编程. http://www.ccs.neu.edu/home/dorai/schelog/schelog.html
Daniel P. Friedman,William E. Byrd和Oleg Kiselyov.理性的计划者.麻省理工学院出版社,2005年7月
Matthias Felleisen.将Prolog音译为方案.技术报告182,印第安纳大学,1985年.
可扩展循环结构:
塞巴斯蒂安·埃格纳 方案中的热切理解:SRFI-42的设计."计划与功能规划研讨会",2005年9月第13-26页.
奥林颤抖.循环的解剖:范围和控制的故事.在国际功能规划会议,第2-14页,2005年.
班级系统:
PLT.PLT MzLib:图书馆手册.技术报告PLT-TR2006-4-v352,PLT方案公司,2006年 http://www.plt-scheme.org/techreports/
Eli Barzilay.骗取. http://www.barzilay.org/Swindle.
组件系统:
Ryan Culpepper,Scott Owens和Matthew Flatt.组件接口中的语法抽象.在生成编程和组件工程国际会议,第373-388页,2005年
软件合同检查
Matthew Flatt和Matthias Felleisen.单位:用于HOT语言的酷模块在ACM SIGPLAN会议上编程语言设计和实现,第236-248页,1998年
Oscar Waddell和R. Kent Dybvig.扩展句法抽象的范围.在编程语言原理研讨会上,第203-215页,第199页
解析器生成器
Scott Owens,Matthew Flatt,Olin Shivers和Benjamin McMullan.Scheme中的Lexer和解析器生成器.关于计划和功能规划研讨会,2004年9月第41-52页.
工程语义工具:
Matthias Felleisen,Robert Bruce Findler和Matthew Flatt.PLT Redex的语义工程.MIT出版社,2009年8月.
编译器转换的规范:
Dipanwita Sarkar,Oscar Waddell和R. Kent Dybvig.用于编译器教育的纳米框架.功能规划期刊,15(5):653-667,2005年9月.教育明珠.
新的执行形式
具有可序列化延续的Servlet Greg Pettyjohn,John Clements,Joe Marshall,Shriram Krishnamurthi和Matthias Felleisen.广义堆栈检查的延续.在国际功能规划会议上,第216-227页,2005年.
定理证明系统
塞巴斯蒂安·埃格纳 方案中的热切理解:SRFI-42的设计.在计划与功能规划研讨会上,2005年9月第13-26页.
基类的扩展与类型
Sam Tobin-Hochstadt和Matthias Felleisen.打字方案的设计和实施.在编程语言原理研讨会上,第395-406页,2008年.
怠惰
Eli Barzilay和John Clements.没有辛勤工作的懒惰:将懒惰和严格的语言结合起来进行教学.在教育中的功能和声明性编程中,第9-13页,2005年. …
我正在尝试将一些Apple映射代码转换为Java.我有大部分转换正确,除了几个调用MKMetersPerMapPointAtLatitude
我有一个非常接近的解决方案......但这不是确切的,我不确定为什么不.有任何想法吗?
#import <Foundation/Foundation.h>
#import <Math.h>
@import MapKit;
#define MERCATOR_OFFSET 268435456.0 / 2.0
#define MERCATOR_RADIUS (MERCATOR_OFFSET/M_PI)
#define WGS84_RADIUS 6378137.0
#define POINTS_PER_METER (MERCATOR_RADIUS / WGS84_RADIUS)
double MyMetersPerMapPointAtLatitude(double latitude) {
return 1.0 / (POINTS_PER_METER / cos(latitude * M_PI / 180.0));
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
double latitude = 33.861315;
for (int i = 0; i < 100; i++) {
double a = MKMetersPerMapPointAtLatitude(latitude);
double b = MyMetersPerMapPointAtLatitude(latitude);
NSLog(@"%f %f", a, b);
latitude += .1;
} …Run Code Online (Sandbox Code Playgroud) 如何使用Bailey-Borwein-Plouffe公式计算pi的第n个二进制(或十六进制)数字?我一直在彻底搜索互联网和这个网站的答案,但我还没有找到算法的实际实现.
维基百科上的Bailey-Borwein-Plouffe页面告诉我"该方法计算第n个数字而不计算第一个n ? 1数字,并且可以使用小型,高效的数据类型".问题是,页面只解释了这种形式的公式:
Pi = SUM k=0 to infinity ...
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用这些信息来实际找到pi的第n位数.(你知道,我不想找到Pi本身的价值,我也不想将总和计算到无穷大......)我只需要在任何编程语言或伪代码中看到一个如何做的例子这在实践中.
int nthDigitOfPi(long n) {
// calculate and return the n-th binary digit of pi
// ...
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.对你的帮助表示感谢.
Adobe Photoshop CS3/4 SDK有很多关于Filter,Import,Export等插件的例子,但我没有找到任何说明如何编写8BX插件的内容.
原因是,我需要写一个是将新的下拉菜单添加到Photoshop根工具栏(它显示文件,编辑,图像...窗口.帮助下拉菜单).我见过像OneSoftware这样的产品在Adobe Photoshop CS3\Plug-Ins\Extensions目录中安装了一个8BX插件,导致PS为OneSoft添加adrop down菜单.这表明这是一个可解决的问题:-)
我尝试通过更改SDK示例中的现有插件但没有去.具体来说我修改了资源文件:
resource 'PiPL' (ResourceID, plugInName " PiPL", purgeable)
{
{
Kind { **Extension** },
Name { plugInName "..." },
...
Run Code Online (Sandbox Code Playgroud)
尽管使用扩展类型,PS从不加载插件.它也不会产生任何编译时间或加载错误.
任何人对如何做到这一点都有任何想法?
我有一小段(x86)程序集,我试图找出它的作用.
...
6: 81 ec 00 01 00 00 sub $0x100, %esp
c: 31 c9 xor %ecx , %ecx
e: 88 0c 0c mov %cl , (%esp, %ecx, 1)
11: fe c1 inc %cl
13: 75 f9 jne 0xe
....
Run Code Online (Sandbox Code Playgroud)
它看起来像循环,直到"JNE"评估为false,即零标志= 0.(可能是它将数字1,2,3 ......放入堆栈?)
从我对程序集的简短调查(我刚接触到它)接缝你通过做一个比较操作(CMP)设置零标志,但我没有看到比较操作.
那么,它会在什么条件下突破这个循环呢?
我有以下脚本SSH进入网络服务器并执行一些命令,由于某种原因SSH连接打开但是当命令执行时它关闭(我认为),结果命令失败,出现以下错误?任何人都可以提供如何使SSH连接持久的信息?
#!/usr/bin/python
import os
import sys
import json
import fileinput
import pwd
from subprocess import Popen, PIPE, STDOUT
import re
import paramiko
import MySQLdb
resource = r'qca-cdit-01'
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(resource, username='username', password='passwordname')
#chan = ssh.get_transport().open_session()
chan = ssh.invoke_shell()
chan.get_pty()
commandstringlist = \
['/local/mnt/workspace/LA_host_builds/AU_LINUX_ANDROID_LA.BF64.1.2.1_RB2.05.01.01.081.031_msm8992',
'cd frameworks/base',
'git fetch ssh://cdit@review-android.company.com:29418/platform/frameworks/base refs/changes/21/1260821/2 && git cherry-pick FETCH_HEAD']
for cmd_val in commandstringlist:
#chan.exec_command(cmd_val)
chan.send(cmd_val)
print(chan.recv(1024))
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "ssh_test.py", line 21, in <module>
chan.get_pty()
File "/usr/local/lib/python2.7/dist-packages/paramiko/channel.py", line 60, …Run Code Online (Sandbox Code Playgroud) [环境:graphviz 2.38/Windows 7]
使用dot,我想生成如下的路径图来表示结构方程模型(嗯,这里,只是一个简单的单因素测量模型).我想在某些节点和边缘使用希腊字母,如果我可以在点文件中使用类似LaTeX的表示法\ksi,\lambda_1或者更喜欢\delta_1

该图应该代表三个方程
\begin{eqnarray*}
x_{1i} & = & \lambda_1 \xi_{i} + \delta_{1i} \\
x_{2i} & = & \lambda_2 \xi_{i} + \delta_{2i} \\
x_{3i} & = & \lambda_3 \xi_{i} + \delta_{3i}
\end{eqnarray*}
Run Code Online (Sandbox Code Playgroud)
我最接近的是以下.dot文件kludge,我选择了font ="Symbol"并用他们的罗马等价物替换了希腊字母.
但是,这不适用于dot -TpdfAFAICS或Postscript以外的任何其他设备dot -Tps,给我一个.eps我必须转换为PDF或PNG的文件.
问题:这种情况有什么好处吗?
digraph threevar {
rankdir=LR;
size="8,4";
node [fontname="Helvetica" fontsize=14 shape=box];
edge [fontname="Symbol" fontsize=10];
center=1;
{rank=min k }
{rank=same X1 X2 X3 }
{rank=max z1 z2 z3 }
z1 [shape=circle …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一个合适的DP算法来简化字符串.例如,我有一个字符串a b a b和一个规则列表
a b -> ba b -> cb a -> ac c -> b目的是使用这些规则获取可从给定字符串接收的所有单个字符.对于这个例子,它将是b, c.给定字符串的长度最多为200个符号.你能提示一个有效的算法吗?
规则总是如此2 -> 1.我已经知道创建一个树,root被赋予字符串,每个子节点在一次转换后是一个字符串,但我不确定它是否是最好的方法.
我想出了以下问题,我不知道解决方案,也无法找到"查找"术语进一步调查.
假设我们有N个有序节点(n_1,n_2 ...... n_N),每个节点之间的固定距离为1.所以dist(n_1,n_N)= N-1.现在我们被允许连接任意两个节点,从而有效地将它们的距离减少到1.假设我们可以有这样的连接.
问题是:我们如何选择连接哪些节点以最小化任何两个节点之间的总距离?
这个问题是一个已经充分研究过的问题的已知变体吗?是否存在有效的解决方案(或者我们只希望最小化任意两个节点之间的最大距离的变体)
谢谢
假设我定义了一个使用验证器槽来增强标准槽的元类,当我:validator (clavier:valid-email "The email is invalid")作为选项传递时,它不是存储表达式的结果(它是一个可执行的函数),而是存储表达式本身.在扩展标准插槽时我是否错过了一步?如何确保在存储之前评估表达式?我正在使用SBCL 1.2.11 btw.这是有问题的代码
(unless (find-package 'clavier)
(ql:quickload :clavier))
(unless (find-package 'c2mop)
(ql:quickload :c2mop))
(defpackage #:clos2web/validation
(:use #:cl)
(:import-from #:c2mop
#:standard-class
#:standard-direct-slot-definition
#:standard-effective-slot-definition
#:validate-superclass
#:direct-slot-definition-class
#:effective-slot-definition-class
#:compute-effective-slot-definition
#:slot-value-using-class))
(in-package #:clos2web/validation)
(defun true (value)
"Always return true."
(declare (ignore value))
t)
(defclass validation-class (standard-class)
()
(:documentation "Meta-class for objects whose slots know how to validate
their values."))
(defmethod validate-superclass
((class validation-class) (super standard-class))
t)
(defmethod validate-superclass
((class standard-class) (super validation-class))
t)
(defclass validation-slot (c2mop:standard-slot-definition)
((validator …Run Code Online (Sandbox Code Playgroud)