首页
学习
活动
专区
工具
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).

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

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

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

相关·内容

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

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

5K20

Erlang 入坑指南

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

2.1K10

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

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

2.3K50

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

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

88830

又要头秃?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.8K10

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.3K00

高薪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.2K20

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

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

2.1K100

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

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

1.4K10

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

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

1.8K30

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

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

85220

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

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

5710

面向过程与面向对象

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

70820

再谈榔头和钉子

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

31920

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

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

2.3K20

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

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

41030

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

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

2.3K40

MultiRow发现之旅(二)- 详解属性管理器

前文回顾 MultiRow发现之旅(一)- 高效模板设计器 属性管理器 上一篇提到MultiRow模板设计器中有一个“属性管理器”,这里就聊一聊这个属性管理器。...MultiRow模板设计器中一个非常给力窗口是“属性管理器”。...如果你用过Form设计器,你一定遇到过这样一种场景:只需要查看/修改某个Control某个属性,却不得不在一大堆Control中找到并选择这个Control,然后打开“属性”窗口,再在一大堆属性中找到我关心属性...而为了更快速定位目标Cell,你可以点击“属性管理器”上工具栏上第二个图标,让表格中只显示被激活Section中Cell,而其它Section中Cell将被隐藏;同时,你可以工具栏上工具栏上输入目标...比如,你想查看当前Section中所有名字中带“up”Cell: ? 可以通过工具栏中“列”下拉按钮按钮选择表格中要显示属性列: ?

55790
领券