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

为什么`print <$> (print "hello")`打印"hello"?

print <$> (print "hello")打印"hello"的原因是因为print函数是一个IO操作,它接受一个参数并将其打印到标准输出。在Haskell中,print函数的类型是Show a => a -> IO (),它接受一个可显示的类型参数a并返回一个IO操作。

在表达式print <$> (print "hello")中,<$>是一个函数应用操作符,它将一个函数应用于一个包含在上下文中的值。在这里,print函数被应用于print "hello"的结果。

首先,print "hello"会将字符串"hello"打印到标准输出。然后,print函数被应用于这个结果,它将结果包装在IO上下文中,并返回一个新的IO操作。最后,这个新的IO操作被执行,将结果打印到标准输出。

因此,整个表达式的结果是打印"hello"到标准输出。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。

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

相关·内容

Python打印print函数深入解析

IDLE中使用help(BIF)命令查看BIF的说明 >>> help(print) Help on built-in function print in module builtins: print...上面的代码通过help(print)查看BIF print的用法以及说明: print的效用:Prints the values to a stream, or to sys.stdout by default...—将值以流的形式输出,或者使用默认打印在控制台 print函数参数列表: 参数 说明 value 是要打印的值 … 值列表,表示可以一次性打印多个值 sep string inserted between...——将值打印到一个文件流对象,默认是打印到控制台 flush whether to forcibly flush the stream....——是否强制冲刷流 打印多个值示例: >>> print("值一", "值二", "值三") 值一 值二 值三 >>> print("字符串", 2, 1 + 2j) # 同时打印字符串、

30910

Python Print打印计时器功能

=False)  这个value是我们要打印的字符串,sep则是value之间的间隔(我们可以print(“Hello”,“Python”)看到中间确实有一个空格间隔开了)  end是打印完成之后要打印的事...,print默认在结束的时候打印一个\n,即换行(我们想要print不换行,只要把end参数换成’'即可)。 ...len(mystr)2)这句话的意思是,打印’\b’这个转义字符,然后打印len(mystr)2次。...len得到字符串长度,为什么要2呢?要知道,我们用的字符串是中文,而1个中文字符 = 2个英文字符(占位),所以,如果字符串是英语,我们完全可以不2,但是中文字符就不同了。...之后,\b帮我们把一行内的字符都清光,这就是我们为什么要获得字符串长度的原因啦,还有就是Python的IDLE无法识别\b字符,所以我们只能在控制台看到正确的结果。

1.9K20

如何使用print实现不换行打印

今天分享一个Python的基础小知识,使用print完成不换行打印。...首先思考一下为什么执行print("hello,world)会在同一行打印,而分别执行两次print("hello,world)就会换行打印 ? 为什么会发生这种情况?我们去查一下官方文档 ?...从文档中我们可以看到,print函数的end参数的默认值是\n,因此会将\n追加至字符串的最后,而\n恰好是换行符,因此当我们执行print("hello,world")时,实际上是在执行print("...hello,world\n") 所以分别执行两次print("hello,world")也就是等价于执行 print("hello,world\nhello,world") ?...搞明白这一点我们就知道如何不换行打印:修改print函数中默认的end参数即可,就像这样? ? 这里我们将默认的end参数由换行符\n改为" ! ",也就是在第一个要打印的字符串的后面添加!。

1.7K40

Vue Print-js 打印问题记录~

问题描述 Vue项目利用连接针式打印打印相关单据,打印出来的文字不清晰,字体颜色模糊。 解决思路 1、看是否样式问题 在查看Print.js 文档后发现,TA可以自己设置样式。...Print({ printable: 'print-box', type: 'html', documentTitle: '文档标题', header: '统计图',...honorColor: true, // 是否打印彩色文本 targetStyles: ['*'] // 允许打印所有样式属性 }) 重新设置后在打印,发现问题依然存在。...然后在打印预览的时候发现普通的打印是可以选择文字什么的。而我们这个选不中才发现之前打印的逻辑是先生成base64的图片,打印的是图片。那会不会是图片模糊导致的呢? 2、将打印改成了DOM元素。...设置 printable 为需要打印模板的id,打印的时候不是图片url地址 3、重新打印后发现不是那么模糊了。

3.4K20

Python print() 函数,在同一行打印

默认情况下, print() 函数每次都在新行上打印,这是由于 Python 文档中 print() 定义决定的。 为什么 Python 的 print 函数默认在新行上打印?...当我们打印内容时,结果如下: 额外的空行是由于文件中每一行末尾都有 \n ,而 n\ 将光标移动到下一行,由于 print 函数也会默认会输出空白行,所以读取文件输出之后多出了一个空行。...选项 # 1-在打印函数中修改 end 的值 让我们在 print 函数中设置 end 的值,我们将它设置为空格,即 '' ,代码示例: # Customizing the value of 'end...same line", end=';') print("This is string 2 different line") 输出: 用法: 上面的示例只是用你设置的分隔字符在同一行上打印的一种方法...回到我们的文件打印示例 记住,我们讨论过一个文件打印示例,其中有多余的行被打印: 让我们使用 rstrip () 稍微修改一下代码。 print("1.

2.5K10

为什么 Python 3 把 print 改为函数?

当需要一个不同的分隔符(不是空格,或者没有分隔符)时,没有简单的方法可以将 print 语句转换成另一个调用。同样地,使用其它一些分隔符而非空格时,根本无法方便地打印对象。...调用像: print(a, b, c, file=sys.stderr) 相当于当前的: print >>sys.stderr, a, b, c 可选的 sep 与 end 参数相应地指定了每个打印参数之间及之后的内容...因此,当前版本的以下写法不能被直接转换: print "a", print 它不会在“a”与换行符之间打印一个空格。...例如,在 2.x 中: >>> print ("Hello") Hello >>> print ("Hello", "world") ('Hello', 'world') 而在 3.0 中: >>>...print ("Hello") Hello >>> print ("Hello", "world") Hello world 幸运的是,因为 print 是 Python 2 中的一个语句,所以它可以被通过自动化工具而检测到

62320

为什么 Python 3 把 print 改为函数?

当需要一个不同的分隔符(不是空格,或者没有分隔符)时,没有简单的方法可以将 print 语句转换成另一个调用。同样地,使用其它一些分隔符而非空格时,根本无法方便地打印对象。...: print(a, b, c, file=sys.stderr) 相当于当前的: print >>sys.stderr, a, b, c 可选的 sep 与 end 参数相应地指定了每个打印参数之间及之后的内容...因此,当前版本的以下写法不能被直接转换: print "a", print 它不会在“a”与换行符之间打印一个空格。...例如,在 2.x 中: >>> print ("Hello") Hello >>> print ("Hello", "world") ('Hello', 'world') 而在 3.0 中: >>> print...("Hello") Hello >>> print ("Hello", "world") Hello world 幸运的是,因为 print 是 Python 2 中的一个语句,所以它可以被通过自动化工具而检测到

51120

8086汇编语言之dos打印hello world

定义数据相当于是定义了段地址 stack ends ;数据段 代码段可直接获取数据段中数据, 相当于高级语言中的全局变量 data segment db 20 dup(0) ;定义数据相当于是定义了段地址 db 'hello...stack ends ;数据段 代码段可直接获取数据段中数据, 相当于高级语言中的全局变量 data segment db 20 dup(0) ;定义数据相当于是定义了段地址 str: db 'hello...stack ends ;数据段 代码段可直接获取数据段中数据, 相当于高级语言中的全局变量 data segment db 20 dup(0) ;定义数据相当于是定义了段地址 str db 'hello...$' ; str:表示指向该数据的地址 ;业务逻辑代码 mov dx, str 第二种 方案使用offset str db 'hello world!...$' ;$ 表示结尾标记 str表示指向该数据的内容 ;业务逻辑代码 mov dx,offset str;获取别名对应数据的偏移地址 如果直接使用str表示将hello world!中的h赋值给dx

1.1K30
领券