clojure学习记录
take 从列表中获取子列表
into a b 把b conj 到a中
(defn count-a-seq [lat]
(reduce (fn [x y] (+ x 1)) 0 lat))
reduce 将list通过fn一个个合并成一个,当然也可以只是对每个进行+1
(defn [x & xs]
reduce #(if (> %1 %2) %1 %2) x xs
)
#(mapcat vector %1 %2)
对%1 %2每个对应元素进行vector,然后concat在一起
drop-last 干掉最后一个
flatten 将所有集合合并在一起
take-last 取最后几个
comp 返回一个将所有参数函数从右到左依次应用的函数
( (apply comp (repeat ntime (if (> n 0) lshift rshift))) coll))
{} #{} hash-map and hash-set
(contains? [1 1 1 1 1] 4) => true 因为contains只看index
some 取第一个满足条件的
(take 10 (map last (iterate (fn [[x y]] [y (+ x y)]) [0 1]))) 迭代器的每个元素是一个二元组,最终取出其中一个组成fib
flattern
(defn flat [coll]
(mapcat
#(if (sequential? %) (flat %) [%]) coll))
https://github.com/qiuxiafei/4clojure/blob/master/answers/28.Flatten%20a%20Sequence
(filter (complement sequential?) (tree-seq sequential? identity '((1 2) 3 [4 [5 6]])))
别人的版本,通过映射成树,然后收集叶子节点来进行flattern,想法不错哦
group-by identity coll 通过identity变成hash-map一个key一个vector的形式、
map hash-map的时候使用 (fn [[k v]] [k (count v)])
into {} ([:b 3] [:a 2]) => {:b 3, :a 2}
(conj nil num) 这样可以建立一个'(num)
--------------
突然想到从cfunc - object -lisp的一个变迁的过程,可能是越来越抽象
比如map这个函数,把平时的普通循环做的事情抽象到每个做映射,这个是普通java里没有的抽象,而这种抽象在lisp里处处可见
前缀的=,可以任意参数的
转载于:https://www.cnblogs.com/TLightSky/p/4127418.html
clojure学习记录相关推荐
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- HTML5与CSS3权威指南之CSS3学习记录
title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...
- 【Cmake】Cmake学习记录
Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- Android开发技术周报176学习记录
Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...
- add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX
Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...
- java之字符串学习记录
java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
最新文章
- linux宝塔如何开启gzip,宝塔nginx如何开启网站gzip
- 四十二、文件的物理结构(下)
- Linux下VMware虚拟机报Could not open /dev/vmmon: No such file or directory. Please make sure that the kern
- SGU 117 Counting
- z370支持pcie信号拆分吗_定了!AMD B550主板确认将支持PCIE4.0,多项能力接近X570
- java类与接口练习
- 08-05 性能测试--定时器场景
- 数据结构--------二叉排序树
- 解决支持库版本兼容问题
- 我和8个程序员聊了一下午,攒齐这些了观点...
- idea toggle offline mode
- 方舟服务器显示网络错误,方舟生存进化提示网络错误怎么办
- 给IT新人的15个建议:苦逼程序员的辛酸反省与总结 - 博客 - 伯乐在线
- 按头安利 好看又实用的毛笔书法字体素材看这里
- 飞利浦、TCL、海信、REASONANCE、七彩虹、Amazfit在CES展示最新新品 | 美通企业日报...
- The application of backtracking
- 太太丘舍去_太丘舍去,去后乃至(离开)——青夏教育精英家教网——
- 中国腹肌刺激器行业发展动态与投资前景预测报告(2022-2027)
- JSP | 简易购物车的实现
- .NET使用MailKit进行邮件处理
热门文章
- 5G NR PUCCH资源配置
- spring整合struts2时作用域scope解析
- async-await用法
- 01.CSS动画--transform
- 抛弃鼠标的神器——Vimium
- IOS零碎技术整理(3)-获取wifi列表
- at sixes and sevens用法
- 信息发布webpart——网页编辑器应用攻略
- git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...
- 使用LinkedBlockingQueue来实现生产者消费者的例子