我正在寻找Elgamal加密算法的免费实现.据我所知,即使它是一个广为人知的算法,似乎只有两个免费的实现:
OpenSSL,beecrypt,Nettle没有实现Elgamal.
列表中是否还缺少其他免费且经过良好测试的Elgamal实现?
假设在Haskell程序中我有一些类型如下的数据:
IO [ IO (Int, String, Int) ], 要么IO [ (Int, String, IO Int) ], 要么[ (Int, String, IO Int) ]但我有纯粹的功能,应该操作[ (Int, String, Int) ].似乎我必须笨拙地从IO monad中删除内部值,直到我得到类似IO [(Int,string,Int)]然后(从IO monad内部)应用纯函数.我想,没有简单的预定义方法可以做到这一点?将整个数据结构提升为monad的东西,将所有内部类型转换为纯类型?(那会很方便!)
是否有像gettextHTML或LaTeX的东西?生成应该保持同步的简单双语网页或LaTeX文档会很棒.有没有这样的东西?我想必须有一些Perl脚本,但我找不到一个.:-)
谢谢!
Jeffrey Meunier 在这里有一个隐含的Curry宏,它使用defmacro.我想知道是否有人用语法规则编写了这个?
在这个页面中,在帖子之后有一个评论,它给出了一个非常短的实现amb过程:
(define (amb-backtrack)
(error "no solution found"))
(define (amb . args)
(call/cc (lambda (return)
(let ((backtrack amb-backtrack))
(map (lambda (x)
(call/cc (lambda (k)
(set! amb-backtrack k)
(return x))))
args)
(backtrack 'fail)))))
Run Code Online (Sandbox Code Playgroud)
但我通常看到amb实现为宏 - 在schemers.org常见问题解答中,以及在Dorai Sitaram的书中:
(define amb-fail '*)
(define initialize-amb-fail
(lambda ()
(set! amb-fail
(lambda ()
(error "amb tree exhausted")))))
(initialize-amb-fail)
(define-macro amb
(lambda alts...
`(let ((+prev-amb-fail amb-fail))
(call/cc
(lambda (+sk)
,@(map (lambda (alt)
`(call/cc
(lambda (+fk)
(set! amb-fail
(lambda ()
(set! …Run Code Online (Sandbox Code Playgroud) 我知道Lua的默认实现仅使用浮点数,从而避免了在选择要使用的数学函数的哪个变量之前动态确定数字的子类型的问题.
我的问题是 - 如果我尝试在标准C99中将整数模拟为双精度(或浮点数),是否有一种可靠(简单)的方法来说明精确表示的最大值是什么?
我的意思是,如果我使用64位浮点数来表示整数,我当然不能代表所有64位整数(这里的鸽子原则适用).如何判断可表示的最大整数?
(尝试列出所有值不是解决方案 - 例如,如果我在64位架构中使用双打,因为我必须列出2 ^ {64}个数字)
谢谢!
有人知道 lisp 有一个高效可靠的线性代数库吗?我已经用谷歌搜索了一些,但对我发现的内容并不满意。我需要进行矩阵运算来开发预测算法。我已经使用 Octave/matalab 一段时间了,我想知道尝试一下 lisp 是否值得。你认为 lisp 不适合矩阵运算吗?谢谢你,卢卡
我在这里玩6502汇编程序:http://skilldrick.github.io/easy6502
我做了这个,只是在屏幕上的随机位置放置一个随机颜色像素:
LDY #$00 ; Clear Y
loop:
JSR genPos ; Put new position in memory
LDA $fe ; Get random number for color
STA ($10), Y ; Put pixel on screen
JMP loop
genPos:
STA $10 ; Store accumulator in low
LDA $fe ; Get new random number (WHY, oh why?)
AND #$03 ; Mask out low two bits (=numbers 0-3)
CLC ; Clear carry flag
ADC #2 ; Add 2 (= numbers 2-5)
STA $11 …Run Code Online (Sandbox Code Playgroud) 据我所知,在使用Scheme进行函数式编程时,通常(并且在我看来最好)教授迭代结构的命令是首先教授递归,然后可能会进入map,reduce和所有SRFI-1过程之类的东西.这可能是,我想,因为通过递归,学生拥有迭代所需的一切(如果他/她想这样做,甚至可以重写所有SRFI-1).
现在我想知道是否曾经尝试过相反的方法:使用SRFI-1中的几个过程,并且只有当它们不够时(例如,近似函数)才使用递归.我的猜测结果不会很好,但我想知道过去使用这种方法的经验.
当然,这不是Scheme特有的; 这个问题对任何功能语言都有效.
在递归之前教授"应用程序编程"(使用组合器)的一本书是Dave Touretsky的常见LISP:对符号计算的温和介绍 - 但是,它是一本Common Lisp书,他可以在此之前教授命令式循环.
我在debian上的SBCL.
出于某种原因,如果我使用这个:
(with-open-file (output (open #p"file.txt"
:direction :output
:if-exists :overwrite))
(format output "test")))
Run Code Online (Sandbox Code Playgroud)
file.txt纯文本文件在哪里.
我收到了错误
#<SB-SYS:FD-STREAM for "file /home/me/file.txt" {1004A90813}> is not
a character output stream.
Run Code Online (Sandbox Code Playgroud)
即使使用:element-type 'character也不能救我.我无法通过任何方法打开任何输出流.如果我尝试使用write-bit它说它不是二进制输出流.没有其他写函数可以工作,例如write-sequence或write-line.他们都返回此错误.我该如何解决?