scheme

Can Emacs Lisp assign a lambda form to a variable like Scheme?

不想你离开。 提交于 2020-04-14 07:23:11
问题 While investigating Emacs Lisp's symbol cells, I found out that for an example function like (defun a (&rest x) x) I can call (symbol-function 'a) , which returns (lambda (&rest x) x) . I can then use it if I want > ((lambda (&rest x) x) 1 2 3 4 5) (1 2 3 4 5) which has the same functionality as the original function above. Now, this reminds me of Scheme where a lambda expression is the body of the function and is assigned to a variable name with Scheme's all-purpose define . For example

Given a recursive function, how do I change it to tail recursive and streams?

天大地大妈咪最大 提交于 2020-04-11 04:20:11
问题 Given a recursive function in scheme how do I change that function to tail recursive, and then how would I implement it using streams? Are there patterns and rules that you follow when changing any function in this way? Take this function as an example which creates a list of numbers from 2-m (this is not tail recursive?) Code: (define listupto (lambda (m) (if (= m 2) '(2) (append (listupto (- m 1)) (list m))))) 回答1: I'll start off by explaining your example. It is definitely not tail

Longest chain of element in lisp

强颜欢笑 提交于 2020-04-07 05:49:38
问题 Statement: Sind the longest chain of character and return it. Ex: input: '(1 2 2 3 3 3 4 4 4 4 5 6 ) ouput: '(4 4 4 4) Problem: I can manage to identify all the different groups in the list and compare them but can't get the function to return the right subset list. It only returns the last group analyzed. code: (define finalL (list)) (define (sameNum liste) (if (or (null? liste) (null? (cdr liste))) ;; true '() ;; false (let ([lcdr (sameNum (cdr liste))]) (if (eqv? (car liste) (car(cdr liste

How scheme code usually deal with cycles in list processing recursive functions?

自作多情 提交于 2020-03-28 06:39:48
问题 My question was marked as duplicate, and closed How to deal with cycles in recursive functions in scheme? I'm asking again: I have this code: (define x (list 1 2 3)) (set-cdr! (cddr x) x) (define (list? x) (and (pair? x) (or (null? (cdr x)) (list? (cdr x))))) (display (list? x)) (newline) and function list? freezes when it find cycle (because it's infinite loop). How scheme code usually work with cycles like that? I'm not asking how to detect cycles. I'm asking: how this is done in scheme

How can I transform this code into Racket/ Scheme

一个人想着一个人 提交于 2020-03-25 19:15:06
问题 This is the code I want translated into Racket: public static ArrayList<Integer> convert(int k, int n) { ArrayList<Integer> lst = new ArrayList<>(); while (k / n != 0) { lst.add(k % n); k = k/n; } lst.add(k % n); return lst; } e.g. in Racket the (convert 23 2) should return the binary of the decimal 23 , which is (list 1 0 1 1 1) . This is what I got so far: (define (convert k n) (cond [(> (/ k n) 0) (list(modulo k n))] [else 0] )) It works for the first element of the list. Thanks for any

URL-统一资源定位器

孤街醉人 提交于 2020-03-25 15:27:30
URL - Uniform Resource Locator URL 可以由单词组成,比如 “w3school.com.cn”,或者是因特网协议(IP)地址:192.168.1.253。大多数人在网上冲浪时,会键入网址的域名,因为名称比数字容易记忆。 语法规则: scheme://host.domain:port/path/filename 解释: scheme - 定义因特网服务的类型。最常见的类型是 http host - 定义域主机(http 的默认主机是 www) domain - 定义因特网域名,比如 w3school.com.cn :port - 定义主机上的端口号(http 的默认端口号是 80) path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。 filename - 定义文档/资源的名称 URL Schemes 以下是其中一些最流行的 scheme: Scheme 访问 用于... http 超文本传输协议 以 http:// 开头的普通网页。不加密。 https 安全超文本传输协议 安全网页。加密所有信息交换。 ftp 文件传输协议 用于将文件下载或上传至网站。 file URL 编码 URL 编码会将字符转换为可通过因特网传输的格式。 URL 只能使用 ASCII 字符集 来通过因特网进行发送。 由于 URL 常常会包含 ASCII

6 件你应该用 Emacs 做的事

给你一囗甜甜゛ 提交于 2020-03-24 11:47:31
本文参考原文- http://bjbsair.com/2020-03-22/tech-info/2125/ 下面六件事情你可能都没有意识到可以在 Emacs 下完成。此外还有我们的新备忘单,拿去,充分利用 Emacs 的功能吧。-- Seth Kenlon(作者) 想象一下使用 Python 的 IDLE 界面来编辑文本。你可以将文件加载到内存中,编辑它们,并保存更改。但是你执行的每个操作都由 Python 函数定义。例如,调用 upper() 来让一个单词全部大写,调用 open 打开文件,等等。文本文档中的所有内容都是 Python 对象,可以进行相应的操作。从用户的角度来看,这与其他文本编辑器的体验一致。对于 Python 开发人员来说,这是一个丰富的 Python 环境,只需在配置文件中添加几个自定义函数就可以对其进行更改和开发。 这就是 Emacs 对 1958 年的编程语言 Lisp 所做的事情。在 Emacs 中,运行应用程序的 Lisp 引擎与输入文本之间无缝结合。对 Emacs 来说,一切都是 Lisp 数据,因此一切都可以通过编程进行分析和操作。 这造就了一个强大的用户界面(UI)。但是,如果你是 Emacs 的普通用户,你可能对它的能力知之甚少。下面是你可能没有意识到 Emacs 可以做的六件事。 使用 Tramp 模式进行云端编辑 Emacs

Zookeeper的ACL

痞子三分冷 提交于 2020-03-21 14:49:29
3 月,跳不动了?>>> 概述(Access Control/访问控制):传统的文件系统中,ACL分为两个维度,一个是属组,一个是权限,子目录/文件默认继承父目录的ACL。而在Zookeeper中,node的ACL是没有继承关系的,是独立控制的。Zookeeper的ACL,可以从三个维度来理解:一是scheme(权限模式); 二是user(授权对象); 三是permission(权限),通常表示为scheme:id:permissions, 下面从这三个方面分别来介绍: 然后这边的scheme和id可以一起介绍,因为 id与scheme是紧密相关的。 (1)scheme: scheme对应于采用哪种方案来进行权限管理,zookeeper实现了一个pluggable的ACL方案,可以通过扩展scheme,来扩展ACL的机制。zookeeper-3.4.4缺省支持下面几种scheme: world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的; auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)

Android采用Scheme协议进行跳转

人走茶凉 提交于 2020-03-10 21:56:13
所谓的Scheme协议具有以下特点: 1.android中的scheme是一种页面内跳转协议。 2.通过定义自己的scheme协议,可以非常方便跳转app中的各个页面; 3.通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。 之前项目都是我们客户端和服务器端用自定义json串的形式来告诉客户端如何跳转,这种方式要手动解析字段,有点麻烦。然而scheme协议自带字段解析,非常之方便,后面我们就放弃了json解析的方式。 Scheme协议在Android中使用场景 1.H5跳转到native页面 2.客户端获取push消息中后,点击消息跳转到APP内部页面 3.APP根据URL跳转到另外一个APP指定页面 Scheme协议的使用: 一个完整的Scheme协议包含(String url = "scheme://mtime:8080/goodsDetail?goodsId=10011002") scheme:协议的名称---随便定义 host: 协议的域名---随便定义 port:自定义协议的端口号---随便定义 path:协议要跳转的路劲(指定的页面)----名字随便起 1.在Mainefest配置文件中配置需要用scheme协议跳转的Activity 2.得到Scheme协议URL后,进行跳转 需要携带参数的话,直接再Scheme协议URL后面拼接即可

How to make this Scheme function not tail recursive?

南楼画角 提交于 2020-03-04 21:27:21
问题 I can't figure out how can I make this tail recursive Scheme function not tail recursive anymore. Anyone can help me? (define (foldrecl f x u) (if (null? x) u (foldrecl f (cdr x) (f (car x) u)))) 回答1: left folds are inheritly iterative, but you can easily make them recursive by adding a continuation. eg. (let ((value expresion-that-calculates)) value) So in your case: (define (foldrecl f x u) (if (null? x) u (let ((result (foldrecl f (cdr x) (f (car x) u)))) result))) While this looks