首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Prolog:我怎样才能只显示伴随某些数字的名字。我在prolog中有一个列表,我只需要显示几个特定的名字

在Prolog中,你可以使用递归和条件语句来实现只显示伴随特定数字的名字。下面是一个示例代码:

代码语言:txt
复制
% 定义名字和对应的数字
name_number(john, 1).
name_number(mary, 2).
name_number(jane, 3).
name_number(mark, 2).
name_number(alex, 4).

% 递归遍历列表并显示特定数字对应的名字
display_names([], _).
display_names([Name|Rest], Number) :-
    name_number(Name, Number), % 名字对应的数字匹配
    write(Name), nl, % 显示名字
    display_names(Rest, Number).
display_names([_|Rest], Number) :-
    display_names(Rest, Number).

% 示例调用
names_list([john, mary, jane, mark, alex]).
display_names(names_list, 2).

在上面的示例代码中,我们首先定义了名字和对应的数字关系,然后使用递归遍历列表,并通过条件语句判断名字对应的数字是否与特定数字匹配。如果匹配,则显示该名字,否则继续遍历列表。你可以根据实际需求修改名字和对应的数字关系。

请注意,以上示例代码中没有提及任何特定的云计算品牌商,如果需要了解腾讯云相关产品和产品介绍链接地址,请参考腾讯云官方文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Erlang 入坑指南

这篇文章是他在《程序人生》的处女稿,从另一个角度跟大家介绍一下 erlang。虽然我之前也也写过一篇介绍 上帝说:要有一门面向未来的语言,于是有了 erlang。...Erlang 是 Joe 老爷子和他的两个同事 1986 年做的项目,受到一个叫做 Prolog 的语言的影响很深。...Prolog 大部分人可能都没听过,更别说用过了,我特地搜了下 Prolog,跟 Erlang 绝对是一个亲妈生的。...我问 Joe 为啥是 Prolog,老爷子说因为他 C 写特烂所以就用 Prolog 实现的初版 Erlang 。。。对于我来说, Erlang 的语法看着真是有点晕菜,所以一直特意没去碰它。...在 Erlang 中也没有必要记住每个进程的 Pid,给其注册个名字即可以后用名字来访问之。

2.2K10

--“三维度”逻辑编程语言的设计(2)

不知道这位朋友具体是出于什么原因这么认为的,我认为一个东西不流行不代表它是失败的、被否定的事物。...我使用Chez Scheme编写了一个新冠病毒感染风险监测程序,可以点击我这篇文章《Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序” 》了解和下载运行这个Scheme程序。...此外,常用的函数式语言还有scala, erlang, F#, Haskell等,说到.NET就不能不提到F#,.NET 5.0将伴随C#9.0同步发布最新的F# 5.0,可见F#在软微开发语言中的重要地位...在本文中,我将这种“看情况”有一个正式的词语来表达--场景,在当前的游戏人生故事中,这里的问题就是“生育场景”中的问题。...场景更像一个剧本中的槽,这是专家系统中有关知识表达的高级话题,在此先不予讨论。

5.1K20
  • 6 个新奇的编程方式,改变你对编码的认知

    但是如果你的编译器能检查一个变量是“一个正整数”,“一个长度为2的列表”还是“一个回文字符串”呢?...这听起来很抽象,所以我们来看看cat中的一个简单例子 : 在这里,我们将两个数字推入堆栈,然后调用该+函数,将两个数字从堆栈中弹出,并将其添加到堆栈中的结果:代码的输出为5。...这里的要点是:在大多数主流语言中,你需要描述如何解决一个特定的问题; 在声明性语言中,你只需描述你想要的结果,而语言本身就能找出到达那里的方法。...如果您使用像Prolog这样的声明性语言对数字进行排序 ,则应该描述所需的输出:“我需要相同的值列表,但索引中的每个项目 i应小于或等于索引处的项目i + 1”。...声明性语言的美妙之处在于它允许你在更高层次的抽象中工作:你只需要描述所需输出的规范。

    2.4K50

    Yarn 4.0 正式发布,性能大幅提升!

    这些操作其实就是用来防止某些攻击者可能使用 Yarn 对我们的项目进行 PR 时暗中修改我们的 lock 文件。...假设我们的项目中有两个工作区(Workspaces):A 和 B,并且它们都依赖于同一个包,比如 "lodash"。...例如,可以定义一个规则,要求所有工作区都必须使用相同的 "lodash" 版本。 Yarn 的约束引擎过去由 Tau-Prolog(一种 JavaScript Prolog 实现)提供支持。...这是一个非常有趣的模式,与基于规则的 linting 概念很好地结合在一起。但不幸的是,Prolog 被证明使用起来非常复杂,增加了约束的学习曲线,超出了大家可以接受的阈值。...另外,它不会再像以前那样打印与同级依赖关系相关的警告,现在只在可操作的情况下打印警告: 另一个例子是 yarn config 命令,它会显示一个新的树形显示,现在还接受任意数量的设置作为位置参数,让我们选择您希望看到的内容

    1.5K30

    又要头秃?2020年七大AI编程语言大盘点

    据一项民意调查显示,超过57%的开发人员更愿意选择Python,而不是C++作为开发人工智能解决方案的编程语言。...Prolog Prolog是Programming in Logic(逻辑编程)的简称,Prolog语言最初出现于1972年。它为人工智能开发,特别是自然语言处理提供了一个令人兴奋的工具。...Prolog语言最适合创建聊天机器人,ELIZA是用Prolog创建的第一个聊天机器人。 ?...第一个成功的聊天机器人,图源medium 要理解Prolog,你必须熟悉指导它工作的一些基本术语: Facts(事实)定义了真实的声明。 Rules(规则)定义了有附加条件的声明。...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 宏和元编程能力 支持多个调度

    1.7K20

    从prolog到LTN,AI的逻辑推理能力1

    从这点来说,描述问题的解决方案比设计解决问题的方法容易得多,在逻辑编程时,我们不需要关心寻找结果的过程,这就是逻辑编程具有吸引力的原因。...只需要把解题的约束建立好。学习逻辑编程,可以先从Prolog学起。...注意,prolog的每条命令结尾需要添加一个 . 号 终端会打印出Hello Mixlab的字样,恭喜,prolog运行成功。 如何退出prolog?终端输入: halt. 即可退出prolog。...如果apple(x)返回的不是true或者false,而是返回0到1之间的数字,这样,我们就可以通过0-1来表达x是apple的概率。...我们可以优化神经网络的权重,使其正确地将x分类为apple。 我是喜欢上了逻辑编程的方式,还可以为AI加上推理能力,

    2.9K10

    2020年,顶尖程序员最应该掌握的7种编程语言

    AI 编程的问题,因为在每一个项目中,不同的目标需要特定的方法。...和做菜时的精挑细选一样,在成为一个「高手」的过程中,我们要学会的是找到最适合自己的编程语言。 Python Python 是可读的最强大的语言。—Pau Dubois Python 编程。...Prolog 最适合创建聊天机器人,ELIZA 是有史以来第一个用 Prolog 创建的聊天机器人。 第一个成功的聊天机器人。...Lisp 用 Lisp 编码创建有 n 个输入 m 个单元的一层感知机。 列表处理(List Processing)的简称。这是继 Fortran 后第二古老的编程语言。...——Larry Wall Haskell Haskell 创建于 1990 年,以著名数学家 Haskell Brooks Curry 的名字命名。

    1.4K00

    高薪AI工程师都在用什么编程语言?2020 年七大 AI 编程语言大盘点

    据一项民意调查显示,超过57%的开发人员更愿意选择Python,而不是C++作为开发人工智能解决方案的编程语言。...它为人工智能开发,特别是自然语言处理提供了一个令人兴奋的工具。Prolog语言最适合创建聊天机器人,ELIZA是用Prolog创建的第一个聊天机器人。...第一个成功的聊天机器人,图源medium 要理解Prolog,你必须熟悉指导它工作的一些基本术语: Facts(事实)定义了真实的声明。 Rules(规则)定义了有附加条件的声明。...——Larry Wall Haskell 官网 Haskell发布于1990年,以著名数学家Haskell Brooks Curry的名字命名,它是一种纯函数式和强静态类型的编程语言,经常和延迟计算和较短的代码搭配使用...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 宏和元编程能力 支持多个调度

    1.8K20

    最易学和最难学的编程语言Top 5

    Springboard 认为它很容易学习的原因在于: 该语言执着于代码的可读性,经常使用英文单词 它以大量使用 whitespace 而闻名,使其不那么令人生畏 它有几个用于各种应用的库 它得到了一个巨大的程序员社区的支持...它的难点在于: 具有复杂的语法以支持多功能性 是一种宽容的语言 —— 你可以做一切技术上可能的事情,即使在逻辑上不正确 最好由已经有 C 语言编程基础的人学习 2、Prolog Prolog 是最早的逻辑编程语言之一...难点在于: 它是一种非常规语言,数据结构不同于其他编程语言 它需要一个不合理的 competent compiler 它迫使程序员预先认真思考他们的逻辑 在线资源和 Prolog 代码不能简单直接地适用于你的需求...它以数学家 Haskell B Curry 的名字命名,主要用于研究、工业应用和教学。...---- ---- 欢迎加入我的知识星球,一起探讨架构,交流源码。

    1.3K20

    改变开发者编码思维的六种编程范式

    以下为译文: 时不时地,我会发现一些编程语言所做的一些与众不同的事情,也因此改变了我对编码的看法。在本文,我将把这些发现分享给大家。...这听起来相当抽象,所以让我们来看cat语言中一个简单的例子: 2 3 + 在这里,我们将两个数字推倒堆栈上,然后调用+函数,它将两个数字从堆栈中弹出,并将它们相加的结果添加到堆栈:代码的输出是5。...简单来说:在大多数主流语言中,开发者是在描述如何解决一个特定的问题;在声明式语言中,你只需要描述你想要的结果,而语言本身确定如何到达那里。...如果使用声明式语言如Prolog来进行数字排序,可直接描述你想要的输出:“我想要相同的值列表,但每个索引i中的每个项目都应小于或等于索引为i+ 1的项”。...例如,在Prolog语言中一个简单的数独求解器的代码只需要列出每行,每列,和一个解决的数独难题的对角线应该看起来的样子: sudoku(Puzzle, Solution) :- Solution =

    2.2K100

    Objective-Ckotilin 混编项目函数调用栈异常排查笔记(1) - Fast Unwind 与序章

    AppDelegate.swift:12:代码的文件名和行号 在某些情况下,文件名或行号信息与原始源代码不对应: 如果源文件名为,则代表该函数是编译器为框架创建的源码...如果源文件的行号为0,则表示该 栈帧 不会映射到原始代码中的特定代码行。...不要着急,我们先用一个实际的例子感受一下。 第一步:我们需要先准备几个函数方便并添加断点 测试代码: ?...每个函数在每次退出时会有一个 epilog ,每个函数通常只有一个 prolog,而可以有多个 epilog。...) 简介 Fast unwind 介绍和背后的机制: 编译器或者开发者在 prolog 阶段按照规则保存栈帧信息 带链接的跳转指令(比如 arm64 的 bl 指令会更新 lr) prolog(序章)

    1.5K10

    汉诺塔——各种编程范式的解决

    递归   如果是第一次看到汉诺塔,估计会一下子变的手足无措。   但我们细细的去想想,从简单的开始入手,先看一个盘的情况,这个太简单了,只需要一步即可。 ?   ...Lisp一直是我认为必学的语言。...而我心里越来越削弱Common Lisp的地位,觉得Scheme更为纯正,纯就纯在它至简的设计,Common Lisp还要分函数和变量两个名字空间,这时常让我觉得没有真正体现数据和函数一家的意思。   ...Prolog是明显不同于之前的几种编程语言,它使用的是逻辑范式,使用谓词演算来计算。...思考   我还是留下几个思考给读者:   1.可不可以证明对于n个盘,上述的2n-1步是最少的移动步数?   2.可以证明“现实中的玩法”的正确性吗?

    1.9K30

    用写文章的方式写程序--“三维度”逻辑编程语言的设计(1)

    1、 前言 前几个月,看到园子里面一篇介绍逻辑编程语言的文章《逻辑式编程语言极简实现(使用C#)》,觉得作者写得很有趣,用讲故事的方式来讲述了一个极简逻辑编程语言的设计,于是我也萌生了写一篇有关逻辑编程语言的文章...说实话,我很早就接触了逻辑编程的概念,最开始学编程的时候就想着有朝一日搞搞AI,当年在AI界机器学习还仅仅是一个概念,最火的莫过于被称呼为“第五代编程语言”的逻辑程序语言--Prolog。...在实际的对话中,命令式交谈有点像领导让下级汇报工作,领导会不断问下级各种工作细节;陈述式交谈有点像一个朋友倾听你讲的一个故事,你只管讲,我听着就行;虚拟式是你希望了解某个事情但又不能以命令的口吻,你们之间是一种平等的关系...在你能叫得出名字的任何一种语言里,程序是一个对能计算出你想要的东西的处理过程的描述,而不是一个对你想要的东西的描述。作为程序员,我们用代码解决问题。...:描述业务中的对象、描述业务场景、描述参与场景的对象角色、描述角色对象或者场景在时间中的相互作用,回答系统中有关的问题,角色参与场景活动的开始、经过和结果,回答角色相互之间的关系。。。

    90320

    使用归纳逻辑编程解决抽象和推理测试,ARC

    1 引言 机器学习[5],更具体地说,深度学习[14],已经在几个领域取得了巨大的成功,并超过了人类的性能。...一个图像网格可以由多个对象表示定义。例如,一个空网格中的单个矩形也可以定义为形成相同矩形的几个线或点对象。...这个逻辑程序是通过在我们的系统中使用ILP构建的。Prolog中的一个逻辑程序示例: 这个逻辑程序可以明确地生成输出中的两条线。...之前找到的对象类型可以限制对关系的搜索,因为某些关系特定于某些类型的对象。 5.2 ILP调用 然后我们调用ILP创建逻辑程序来定义仅在上一步中找到的关系。这也减少了搜索空间。...GreaterThan和LowerThan只与数字变量相关。我们还考虑aX+b,其中X是一个数字变量,a和b是我们预定义的某个区间内的常数。

    14510

    【Git系列】git log`的高效使用

    在开始今天的分享之前,我想先推荐一篇非常精彩的文章。 文章就是《渗透测试文件包含漏洞原理与验证(1)——文件包含概述》 链接是:点击这里。...参数详解 -2参数:显示最近的两条提交 -2参数是一个简单的数字参数,它告诉 Git 只显示最近的两条提交记录。这对于快速查看最新的提交非常有用,尤其是在需要快速了解最近代码变更情况时。...--no-merges参数的作用是告诉 Git 在显示提交历史时忽略这些合并提交,只显示普通提交。这在某些情况下非常有用,比如当你只关心代码的直接变更,而不关心分支合并的历史时。...--pretty=format:'%an'参数:自定义显示格式 --pretty=format参数允许用户自定义git log输出的格式。'%an'是一个占位符,代表作者(author)的名字。...通过这个参数,用户可以指定git log只显示提交的作者名字,而不是完整的提交信息。

    5700

    再谈榔头和钉子

    但是编程范型(Programming Paradigm)则往往和语言本身的特性强相关,一种特定的语言,只适用于一种或几种编程范型。...我曾经在 《编程的未来》里面提到过编程范型的进化: 很多时候程序员会觉得,算法还是不容易转变成代码,即便是简单的算法,思路简单的纸上实现,变成代码却比较冗长。...也使用了 Prolog 作为例子。...在维基百科的链接上,可以找得到很多编程范型的归类,最常见的几个说出来也会觉得耳熟能详: 声明式编程 事件驱动编程 面向切面编程 管道编程 …… 学习一种新的语言,其中一项重要的意义也在于此;有的框架,特别是提供了...说反直觉那确实也是正确的,但是很多情况下这是建立在人已有认识的基础上的,一旦熟悉并习惯了 D3 的编程范型(接近于声明式,核心是几个不同的状态,加上状态之间的变迁,而这些变迁的过程可以绑定上丰富的行为)

    34520

    面向过程与面向对象

    接下来我就罗列一下今晚的收获吧: Sun对Java的设计目标:为程序员减少复杂性。...举起了一个栗子: 汇编语言是对底层机器的抽象 Basic,C是对汇编语言的抽象 接下来,重点来了: 但它们的抽象都是基于计算机的结构去解决问题,而不是基于所要解决的问题去考虑。...面向过程的特点的本质是啥?是基于计算机的结构解决问题!!! 在面向过程的情况下,程序员需要在机器模型和待解决问题模型之间建立关联。...(当然,这种方式是非常困难的) 在面向过程到面向对象的路上,前人们做了哪些努力呢?...LISP:所有问题都是列表 APL:所有问题都是算法 Prolog:所有问题都是决策链 问题:针对特定领域都是不错的解决方案,但其通用性太弱,无法脱离领域限制。

    72920

    新的python前端界面库,学会这3个套路,你就入门了80%

    pywebio做一个数据查询器 安装库: pip install -U pywebio ---- 界面交互的方式 最常见的界面是只显示,而用户不能交互。...编程上这叫"阻塞",代码执行就像流水,从上而下执行,"阻塞"使得水流停住,不再往下走 对应在 pywebio 中的就是各种输入方法—— input 模块: 这是一个让用户输入2个数字,然后把求和结果显示出来的界面...---- 作用域修复 "一问一答" 模式中有一个重要的问题, 输出的内容无法改变 。...这种模式无法实现如下效果: 第一次让用户输入之前,就显示一个表格 每次输入后,表格都会立即更新 pywebio 为此提供了"作用域"的概念: 作用域 概念很简单,你可以用一个名字定义页面上某个区域...,毕竟用户每次输入后只需要更新表格中的一个格子。

    2.7K20

    「MoreThanJava」Day 4:面向对象基础

    早期的编程语言,例如 LISP 和 APL,都是选择一些特定的视角来 "解释世界" (分别敌营 "所有问题最终都是列表" 或者 "所有问题都是算法形式的")。PROLOG 则将所有问题都转换成决策链。...这种思想的实质是:程序可以通过添加新类型的对象使其自身适用于某个特定的问题。 因此,当你在阅读描述解决方案的代码的同时,也是在阅读问题的表述。相比之前的语言,这是一种更灵活和更强力的语言抽象。...保护某些对象而不保护某些对象也不是非常合理有用。 正确执行封装不仅是对状态抽象的承诺,而且是消除编程中面向状态的隐喻的一种承诺。 Part 2....假设我们要编写一个表示小狗 Dog 的简单类 —— 它表示的不是特定的小狗,而是任何小狗。 对于大多数宠物狗,我们都知道些什么呢?—— 它们都有名字和年龄,还会叫、会吃东西。...- 抽象 / 封装 / 继承 / 多态的简单介绍 基础练习 - 定义 Dog 类 / 定义时钟类 / 定义图形类 (下方) 练习 练习 1:定义一个类描述数字时钟 参考答案: public class

    43030

    pycharm简单案例代码_python简单代码编写

    创建文件之后,他会要求你自定义一个名字,这个随你们,不过我建议用英文定义名字 因为后期如果你们做大型开发的时候,中文名字的文件夹是不合规的。...其中我第一个红圈的位置,大家可以和上上面的那个图对比一下(对,是上上一个图),当我们的括号用英文输入的时候,它自己会标识出来,一个浅浅的绿色的连带的符号,会直接显示。...那么现在需要知道的就是,代码内有些东西是需要将他的代码设置成某些格式的。 就比如说数字,你如果只用print打印,那他的格式永远只是字符。 但是如果你想运算数字就比较尴尬了。...此时需要提前教大家一个”格式化符号” 格式化符号可以将数据格式化 因为大家输入的数据,包括我今年的年龄是8岁 机器会全部认为你输入的东西在机器里全是字符串 在一些简单的语言里,可能会不需要格式化相关的字符...:这里大家要小心的是: 无论第一种还是第二种print的括号内需要有”” 另外,” “也可以写成’ ‘ 也就是: print(f’我的名字是{name},我的年龄是{age}岁’) 大家应该看到,我在代码前面

    2.6K40
    领券