我是编程新手,虽然我已经教自己Python大约一年了,我不久前学过C#.
这个月我在我的大学开始了C++编程课程,我只想问; "为什么C++代码如此复杂?"
写"你好世界".在Python中就像"打印'Hello world.'"一样简单,但在C++中它是:
# include <iostream>
using namespace std;
int main ()
{
cout << "Hello world.";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道这可能是一个很好的理由但是,为什么......
这可能是因为我正在学习这样的基本C++,但到目前为止我所做的每个程序都是这样的,所以我必须一遍又一遍地重新输入相同的代码.这不是多余的吗?编译器本身无法输入此代码,因为它总是相同的(即afaik总是包含<iostream>,std,int main,return 0)
我想创建一个简单的堆栈窗口管理器(in C)供私人使用,主要是为了学习和挑战自己.
我查看了twm源代码相对较少的铃声和口哨,但它似乎非常低,因为它不是基于小工具工具包.1使用GTK +等工具包会更好吗?我担心一些代码和库twm可能过于陈旧(编辑:不推荐),我希望窗口管理器使用相对现代的库.为了便于理解,我也对如何从头开始一个窗口管理器的建议感兴趣 - 没有很多教程可以用于此目的.
更新:对于那些考虑类似项目的人:我最终使用了Common Lisp和CLX库.tinywm-lisp作为基础,辉煌的CLFSWM和Stumpwm是一个很好的帮助.作为参考,我使用了CLX - Common LISP X接口(PDF警告)和#xlibFreenode.
该回声区是在模式线以下的Emacs底部的线:
~ ~
| |
+-----------------------+
|-U:--- mode-line |
+-----------------------+
| M-x echo-area |
+-----------------------+
Run Code Online (Sandbox Code Playgroud)
现在模式线是高度可定制的,而回声区域更加严格(并且很多时候都没有使用).问题很简单:是否可以在不活动期间隐藏回声区域,并在需要注意时重新显示它:
~ ~ ~ ~
| | | |
| | +-----------------------+
| | |-U:--- mode-line |
+-----------------------+ +-----------------------+
|-U:--- mode-line | | M-x echo-area |
+-----------------------+ +-----------------------+
Inactive Active
Run Code Online (Sandbox Code Playgroud)
这类似于当您将mose悬停在链接上时Google Chrome显示网址的方式,以及默认情况下隐藏命令行的Firefox插件Pentadactyl.
首先,什么是之间的区别UTF8和utf8x在
\usepackage[utf8]{inputenc}
\usepackage[utf8x]{inputenc}
Run Code Online (Sandbox Code Playgroud)
在LaTeX中使用时?
其次,使用LaTeX在冰岛写一篇文章时需要哪些包?我发现:
\usepackage[icelandic]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
Run Code Online (Sandbox Code Playgroud)
经过一段时间的实验,但我感觉有些代码可能是多余的.即使有他们上面提到的包,里面的代码
\begin{lstlisting}
...
\end{lstlisting}
Run Code Online (Sandbox Code Playgroud)
pdflatex虽然它可以在我朋友的计算机上运行(谁正在运行Debian),但是在Ubuntu中输出时不会呈现冰岛字符.少了什么东西?
快问.
我正在使用Linux,我想尝试使用Python制作GUI.我听说过像Qt,GTK +和PyGTK这样的东西,但我不知道它们究竟是什么,它们之间的区别是什么.
他们如何使用GNOME,KDE,XFCE等不同的DE有什么不同吗?是否有任何IDE允许您像Microsoft Visual Studio一样创建GUI(对于C#,C,Visual Basic等)?
或者我应该使用除Python以外的其他语言来制作GUI应用程序?
在Clojure中将字符串编码和解码为十六进制是否有惯用的方法?Python的例子:
'Clojure'.encode('hex')
# ? '436c6f6a757265'
'436c6f6a757265'.decode('hex')
# ? 'Clojure'
Run Code Online (Sandbox Code Playgroud)
为了表明我的一些努力:
(defn hexify [s]
(apply str
(map #(format "%02x" (int %)) s)))
(defn unhexify [hex]
(apply str
(map
(fn [[x y]] (char (Integer/parseInt (str x y) 16)))
(partition 2 hex))))
(hexify "Clojure")
;; ? "436c6f6a757265"
(unhexify "436c6f6a757265")
;; ? "Clojure"
Run Code Online (Sandbox Code Playgroud) 我从XKCD的Hofstadter漫画中得到了这个想法; 什么是在(任何)Lisp方言中创建条件循环的最佳方法,该方法执行函数,直到它返回NIL,同时它将返回的值收集到列表中.
对于那些没有看过这个笑话的人来说,道格拉斯·霍夫施塔特的"八字"自传只包含六个词:"我就是这样的元,甚至这个缩写",包含了这个笑话的延续:(一些奇怪的meta-paraprosdokian ?)"是元" - 笑话是自传实际上是"我是如此元,甚至这个缩写是元".但为什么不深入呢?
假设META从字符串创建首字母缩略词并将其拆分为单词的首字母缩略词函数,NIL如果字符串只包含一个单词则返回:
(meta "I'm So Meta, Even This Acronym") ? "Is Meta"
(meta (meta "I'm So Meta, Even This Acronym")) ? "Im"
(meta (meta (meta "I'm So Meta, Even This Acronym"))) ? NIL
(meta "GNU is Not UNIX") ? "GNU"
(meta (meta "GNU is Not UNIX")) ? NIL
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找如何实现一个功能,以便:
(so-function #'meta "I'm So Meta, Even This Acronym")
? ("I'm So Meta, Even This Acronym" "Is Meta" "Im") …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用这篇博文的方法来处理更高级的数据,而无需Identity为琐碎的情况使用悬空函子以及量化约束推导:
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE QuantifiedConstraints, StandaloneDeriving, UndecidableInstances #-}
module HKD2 where
import Control.Monad.Identity
type family HKD f a where
HKD Identity a = a
HKD f a = f a
data Result f = MkResult
{ foo :: HKD f Int
, bar :: HKD f Bool
}
deriving instance (forall a. Show a => Show (HKD f a)) => Show (Result f)
Run Code Online (Sandbox Code Playgroud)
这导致了令人气愤的自相矛盾的错误信息:
无法
Show (HKD f a)从上下文推断:forall a. Show …
haskell type-families deriving quantified-constraints derivingvia
我正在尝试创建自己的数据类型,它将成为 Monad 类的一部分,但是
newtype Container a = Container a deriving Monad
Run Code Online (Sandbox Code Playgroud)
给我这个错误:
* Can't make a derived instance of `Monad Container'
(even with cunning GeneralizedNewtypeDeriving):
cannot eta-reduce the representation type enough
* In the newtype declaration for `Container'
|
30 | newtype Container a = Container a deriving Monad
Run Code Online (Sandbox Code Playgroud)
它适用于其他类(例如 Show),但不适用于 Monad,那么我如何说服 ghci 将我的 Container 实例化为 Monad 类?
谢谢
我正在尝试定义一个实例:
newtype Join a = Join { getJoin :: a -> Bool }
deriving Generic
instance Monoid (Join a) where
f <> g = ???
mempty = ???
Run Code Online (Sandbox Code Playgroud)
目标是如果列表中的所有函数都为真,则函数 foldMap Join 应该返回 True,如果所有函数都不为真,则返回 false。
我了解 foldMap 以及 Monoid 的 Sum 和 Product 实例,但对于编写 Monoid 的 newtype 实例我还是很陌生的。任何在正确方向上的帮助将不胜感激。谢谢你。