Articles of haskell

我怎样才能在ghci中使用math符号(函数名称)?

我正在学习Haskell。 我看到一个作者在代码中使用了一些math的Unicode字符(例如∀ )。 我也尝试使用它,例如: (∀) :: (a -> b) -> [a] -> [b] f ∀ [] = [] f ∀ (x:xs) = fx : f ∀ xs ghci加载这个成功,但我不能调用这个function…当我尝试从剪贴板粘贴到ghci控制台的∀符号,没有任何反应(Windows 7, Lucida控制台字体)。 这是非常方便的 – 使用math符号(在我看来)。 我怎样才能在ghci使用它?

GHC ::链接agains sqlite3在Windows上失败

我创build了一个简单的应用程序,它使用sqlite3作为数据存储的后端。 在Linux上构build和运行时,我没有遇到任何问题,但在尝试在Windows上构build它之后,我发现了一个奇怪的链接错误: Linking dist\build\hnotes\hnotes.exe … C:\Documents and Settings\Admin\Application Data\cabal\sqlite-0.5.2.2\ghc-7.0.4/libHSsqlite-0.5.2.2. a(sqlite3-local.o):sqlite3-local.c:(.text+0x21): undefined reference to `sqlite3_temp_directory' C:\Documents and Settings\Admin\Application Data\cabal\sqlite-0.5.2.2\ghc-7.0.4/libHSsqlite-0.5.2.2. a(sqlite3-local.o):sqlite3-local.c:(.text+0x40): undefined reference to `sqlite3_temp_directory' collect2: v ld 1 cabal.EXE: Error: some packages failed to install: hnotes-0.1 failed during the building phase. The exception was: ExitFailure 1 有什么可能是错的? 我怀疑,qalite3.dll必须添加到链接阶段,但不知道如何做到这一点。 添加–extra-lib-dirs = path-to-sqlite-dll也没有帮助(也许是因为我需要以某种方式更新我的cabal文件,以支持这一点?)。

在Windows 7上安装Haskell模块

昨天我试图通过cabal安装一个Haskell模块,以便在Haskell中安装模块。 我必须先安装cabal。 我的系统:Windows 7 Haskell编译器版本:GHC 7.0.2(链接http://www.haskell.org/ghc/download ) Cabal: http : //haskell.org/cabal/download.html 我将逐步描述这个过程,希望在cabal和cabal的软件包安装过程中,您可以指定我的错误行为。 步骤: 安装了Haskell编译器GHC 7.0.2 从Windows 7开始菜单启动GHCi,在DOS窗口中输出如下内容: GHCi, version 7.0.2: Website 😕 for help . Loading package ghc-prim … linking … done. Loading package integer-gmp … linking … done. Loading package base … linking … done. Loading package ffi-1.0 … linking … done. Prelude> 到目前为止这么好:基本包内的每个函数都是可访问的,并且按照它应该的方式运行。 […]

Haskell:无法在Windows上安装SDL-0.6.2

我试图在Windows 7上安装Haskell SDL-0.6.2软件包,使用ghc 6.12.1(Haskell平台)。 我最终从cabal获得以下输出: C:\Users\Martin\dev\Rasenschach_0>cabal install SDL Resolving dependencies… [1 of 1] Compiling Main ( C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0 .6.25076\SDL-0.6.2\Setup.lhs, C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076 \SDL-0.6.2\dist\setup\Main.o ) C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076\SDL-0.6.2\Setup.lhs:2:2: Warning: In the use of `defaultUserHooks' (imported from Distribution.Simple): Deprecated: "Use simpleUserHooks or autoconfUserHooks, unless you n eed Cabal-1.2 compatibility in which case you must stick with defaultUserHooks" Linking C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076\SDL-0.6.2\dist\setup\ setup.exe … Warning: […]

如何在Haskell中指定本地绑定接口来组播套接字?

我已经尝试了Network.Multicast包,但它确实工作,但是,我找不到指定本地绑定接口(“bond0”或“bond1”等)到组播套接字的方法。 我知道在CI需要使用ioctl将债券转换为结构sockaddr_in,然后将此结构提供给IPPROTO_IP系列的setsockopt IP_MULTICAST_IF选项,但我不知道如何在Haskell中做到这一点。 有人能帮忙吗? 谢谢!

XMonad:dmenu在启动时不会启动/产卵

对XMonad来说是新鲜事物,到目前为止我们都很喜欢它。 我有一个相当香草/普通的XMonad设置,并与dmenu有问题。 当我login和打mod+p没有任何反应。 如果我然后打开一个terminal,然后打xmonad –restart然后mod+p , dmenu将工作。 我的xmonad.hs肯定有问题吗? 我尝试了XMonad的非自定义设置,并且正常工作(即login后dmenu正在工作)。 我的问题: 我的xmonad.hs有问题吗? 为什么不dmenu工作,除非我xmonad –restart ? 在xmonad.start中可能会导致xmonad启动时无法正确加载dmenu? 这里是我的文件(从过度借用)。 : xmonad.hs import System.IO import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.SetWMName import XMonad.Util.EZConfig(additionalKeys) import XMonad.Util.Run(spawnPipe) import XMonad.Hooks.ICCCMFocus myWorkspaces = ["1", "2", "3", "4", "5", "6"] myManageHook = composeAll [ className =? "Gimp" –> doFloat , className =? "Vncviewer" […]

如何从Haskell代码跨平台播放audio文件

我正在编写一个在Linux,Windows和OS X上运行的Haskell命令行应用程序。我现在必须从中播放audio文件( .wav , .ogg和.mp3 )。 我将如何去实现一个function playAudioFile :: FilePath -> IO () 甚至更好 playAudio :: ByteString -> IO () 这只是在所有系统上工作? (我很乐意引用常用的命令行工具,也不介意将它们捆绑在Windows发行版上。)

XMonad:SpawnOn工作区,当按下spawn键时有焦点

我想我的程序产生的焦点,当它的键绑定被按下的屏幕上,而不是在当前聚焦完成加载的屏幕上。 为什么:我目前的设置是Arch Linux + XMonad,我有6台显示器。 我一直在使用XMonad大约一年,我唯一的问题就是需要一些时间打开的程序。 例如,我第一次启动铬需要3秒钟的时间来加载。 我按我的键绑定铬,然后去不同的屏幕做别的。 但是,当铬加载它加载在屏幕上,当前焦点不在屏幕上,当按下spawn键绑定时被关注。 我的haskell技能很好…不存在。 我之前已经在Lisp中编写过程,并花费了大量的时间在C,Python和JavaScript中,所以如果需要的话,我可以把它捡起来(所以请在haskell样本的答案中清楚一点)。 提前致谢。

从C中调用Java的Haskell

这可能听起来像一场噩梦,但我真的想要得到这个工作。 我使用这个例子大部分: 从Haskell调用C,并试图让这个工作在Ubuntu上。 我在java中运行这个: package test; public class JniTest { public native int fib(int x); } 这个在用javah创build.h文件之后在c:(test_JniTest.c) #include "test_JniTest.h" #include "Safe_stub.h" JNIEXPORT jint JNICALL Java_test_JniTest_fib(JNIEnv * e, jobject o, jint f) { return fibonacci_hs(f); } 然后在Haskell中(在存根之前)引用:(Safe.hs) module Safe where import Foreign.C.Types fibonacci :: Int -> Int fibonacci n = fibs !! n where fibs = […]

如何在Linux上安装Haskell Debian Wheezy?

最初我以为我会用apt-get来安装Haskell,但它似乎有些复杂。 当我看着haskell组织下载页面时 ,我下载了haskell-platform-2013.2.0.0.tar.gz 。 然后下一步是混淆。 它要求在安装平台之前安装GHC ,但同时打开GHC下载页面,会显示一些警告,例如Stop ! ….. we recommend installing the Haskell Platform instead of GHC Stop ! ….. we recommend installing the Haskell Platform instead of GHC 。 请指导我如何在Debian Wheezy上安装Haskell。 我们可以从这个包中构build一个.deb安装包吗?