Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Clojure中迭代函数参数

在Clojure中迭代函数参数
EN

Stack Overflow用户
提问于 2019-10-09 04:09:03
回答 2查看 299关注 0票数 0

我在迭代传递给以下函数的函数参数时遇到了困难。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defn iterateDates
  [& dates]
  (let [ukFormatter (java.time.format.DateTimeFormatter/ofPattern "dd-MM-yyyy")]
    (for [i [dates]]
      (java.time.LocalDate/parse i ukFormatter))))

(iterateDates "09-10-2019" "10-10-2019" "11-10-2019")

但是,当调用时,将返回以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error printing return value (ClassCastException) at clojure.core/getOldestDate$iter$fn$fn (core.clj:96).
clojure.lang.ArraySeq cannot be cast to java.lang.CharSequence

我不知道如何迭代传入的参数,并将每个元素作为单独的值,然后传递给另一个函数。

我最终使用代码的目标是比较一个日期列表,并在其中找到最古老的日期。这段代码只是尝试将每个参数解析为日期。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-09 04:51:53

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defn iterateDates
  [& dates]
  (let [ukFormatter (java.time.format.DateTimeFormatter/ofPattern "dd-MM-yyyy")]
    (for [i dates]
      (java.time.LocalDate/parse i ukFormatter))))

(iterateDates "09-10-2019" "10-10-2019" "11-10-2019")

这个版本应该能用。

您在原始代码中编写了(for [i [dates]],它的工作方式是您无意中指定的:

  1. 它使用了一个dates向量[]进行迭代,其中dates已经是一个序列。
  2. 这个向量的第一个元素是dates,这是一个试图将ArraySeq解析为CharSequence并失败的datesH 216G 217
票数 3
EN

Stack Overflow用户

发布于 2019-10-15 01:44:37

我想我应该更新答案,因为我已经找到了另一种方法来实现这一点,而不必迭代args:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defn iterateDates
  [& dates]
  (let [ukFormatter (java.time.format.DateTimeFormatter/ofPattern "dd-MM-yyyy")]
    (map #(java.time.LocalDate/parse % ukFormatter) dates)))

map函数将日期格式应用于日期的每个元素,并将其作为新列表返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58303826

复制
相关文章
Clojure集合管道函数练习
TDD讨论组里的申导最近在B站直播了Martin Fowler的经典文章Refactoring with Loops and Collection Pipelines中谈到的利用集合管道对循环进行函数式重构。视频地址在这里,申导的翻译在这里。组织者小波(Seaborn Lee)趁机出了一道关于集合管道函数题目。我就想啊,论函数式编程,舍Clojure其谁?而且我在Clojure很少能写出loop... recur这样偏底层的循环代码。话不多说,撸起袖子开工。
lambeta
2018/08/17
1.2K0
Clojure 学习入门(6)—— 函数定义
简短的函数可以使用#(),%表示唯一的参数;%1、%2 ..依次表示第1、2、..个参数;%&表示所有参数,如下: 
阳光岛主
2019/02/18
7790
PHP在函数体中传递与接收参数
默认情况下,PHP是按值传递参数的。值传递参数调用函数时将常量或变量的值(通常称其为实参)传递给函数的参数(通常称为形参)。值传递的特点是实参与行参分别存储在内存中,是两个不相关的独立变量。因此,在函数内部改变形参的值时,实参的值一般是不会改变的。
用户7657330
2020/08/14
2.7K0
Python中函数参数
带默认参数的函数有如上四种调用方式,但是我们调用的时候参数的名称必须和函数定义的时候的参数一致,否则会报错:
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.1K0
TypeScript 函数中的 this 参数
从 TypeScript 2.0 开始,在函数和方法中我们可以声明 this 的类型,实际使用起来也很简单,比如:
阿宝哥
2020/03/20
7.8K0
jsp中在href中传递参数
<% Configuration conf = new Configuration(); URI uri = new URI("hdfs://192.168.0.52:9010"); FileSystem fileSystem = FileSystem.get(uri, conf); //System.out.println("Hdfs directory is"+"\n"); Path src1 = new Path("hdfs://192.168.0.52:9
闵开慧
2018/03/30
4.7K0
python中函数的可变参数
print(1,2,"hello","刘金玉编程","编程创造城市",end="$$$")
刘金玉编程
2019/07/30
2.2K0
python函数中带*及**参数
    另外还可以传入两种特殊的参数:带*或**的参数。这两类形式的参数都可以传入任意数量的实参,它们的不同点主要在于*参数传入的为一个元祖(tuple);**参数出入的则为一个字典(dict)。由于传入的参数数量不确定,因此当它们与普通参数放在一起时,必须把它们放在最后。
py3study
2020/01/06
1.3K0
Python 函数中的参数类型
Python 中函数的参数类型比较丰富,比如我们经常见到 *args 和 **kwargs 作为参数。初学者遇到这个多少都有点懵逼,今天我们来把 Python 中的函数参数进行分析和总结。
码农小胖哥
2020/02/24
3.3K0
「函数」递归与迭代
重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法求某一数学问题的解。
AXYZdong
2022/02/04
9510
「函数」递归与迭代
递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A)
AXYZdong
2022/05/05
2790
「函数」递归与迭代
python中的imread函数_python open函数参数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.8K0
Clojure使用Java方法Clojure使用Java方法
Clojure有个很强大的功能,就是你可以使用Lisp语言风格无缝调用java api(java interop).这无疑是如虎添翼.
一个会写诗的程序员
2018/08/20
1.4K0
【LTE参数查询工具迭代更新】
该工具基于华为4G基站的网管配置文件作为数据源,进行查询LTE小区前台日常优化参数:小区功率,小区带宽、PCI、TAC、频率配置、切换重选参数,2345G邻区关系,可简化日常优化过程中前后台配合流程,节省时间。
用户6184845
2020/05/22
1.2K0
Swift4.0 函数参数(内部外部参数和下划线在函数的作用)
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() funcDemo1(arg1: 2, arg2: 3) funcDemo2(a: 5, b: 2) funcDemo3(2, arg2: 3) } override func didReceiveMemor
星宇大前端
2019/01/15
1.6K0
Python中函数定义及参数实例
    函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字 ,可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)
py3study
2020/01/08
8830
python中函数的默认参数问题
第三次调用的时候,很容易误以为会L1输出[10],L3输出[20],但是其实都是[10, 20]。这里其实是因为,函数test的x列表参数在没有被指定的时候,这个x列表的值随后就会被利用。其实带有默认参数的会在函数在被定义的时候就被计算,而不是在调用的时候被计算的。L1与L3是在同一个默认列表上操作的,但是L2指定了参数,因此是在另外列表上进行操作的。
生信编程日常
2020/05/26
2K0
【Kotlin】函数 ① ( 函数头声明 | 函数参数 | 默认参数值 | 具名参数 )
默认参数值 : Kotlin 语言 中的 函数参数 , 可以 在定义时 指定参数默认值 ;
韩曙亮
2023/03/30
2.8K0
【Kotlin】函数 ① ( 函数头声明 | 函数参数 | 默认参数值 | 具名参数 )
【C++】函数参数扩展 ( 默认参数 | 默认参数定义规则 | 默认参数定义在参数列表末尾 )
" 默认参数 " 概念 : C++ 语言 中的 函数 , 可以在 声明 函数时 , 为 函数参数 定义一个默认值 ;
韩曙亮
2023/10/15
8030
【C++】函数参数扩展 ( 默认参数 | 默认参数定义规则 | 默认参数定义在参数列表末尾 )
点击加载更多

相似问题

在Clojure中解构函数参数

21

在Clojure中迭代帮助

12

Clojure函数中的参数

33

在Clojure函数中移动参数

30

在clojure中,函数参数类型不匹配

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文