At ZuriHac 2019 Matthew Pickering talked about tools for working on GHC. There’s an associated blog post which is also well worth reading. I wanted to focus on a small part of his presentation, which is about loading GHC into GHCi and using ghcid to automatically reload GHC on changes. This has been possible for almost a year now, as described in this blog post by Michael Sloan. It has since been
Show instance of Char should print literals for non-ascii printable charcters Show instance for non-ascii characters prints their character codes. This is sad for Haskell users that speaks language other than English. > 'A' 'A' > 'Ä' '\196' > '漢' '\28450' > print $ [(++"'s dad"), (++"'s mom")] <*> ["Simon", "John"] ["Simon's dad","John's dad","Simon's mom","John's mom"] > print $ [(++"の父"), (++"の母
Look at the problem: Normally, in the interactive Haskell environment, non-Latin Unicode characters (that make a part of the results) are printed escaped, even if the locale allows such characters (as opposed to direct output through putStrLn, putChar which looks fine and readable)--the examples show GHCi and Hugs98: $ ghci GHCi, version 7.0.1: http://www.haskell.org/ghc/ :? for help Prelude> "hel
この記事はHaskell Advent 2012のための記事です。(遅れてすいません(ヽ´ω`)) Haskellで実際にプログラムを書く上では、様々なパッケージにある型や関数を利用するのが不可避になります。 そういった便利ツールのうち文字列まわりについて調べたところを、Haskell最近始めたって人に紹介するのがこの記事の目的です。Haskell詳しい方には新しい発見は無いかもしれません。ごめんなさい。 この記事では、主に文字列に焦点を当てていますが、そのうちまた別のテーマでも書こうと思っています。 なお、前提としてるバージョンはHaskell Platform 2012.4.0.0と、それに付随するGHCやパッケージです。 OSも、Mac OS XやLinuxなどUNIX系の環境を想定しています。Windowsは持ってませんのでわかりません。ごめんなさい。 文字列 Haskellでは文
Haskellの日本語の取扱いで困っているような同じような人(Haskell初心者さん)へ向けて。本記事では、Ubuntuで全てUTF8で統一しているにも関わらず困った事象です。WindowsでDOS窓環境だったりすると、また違った困りかたになると思います(DOS窓はSJISのため)。 概要 Haskellを使ってHTMLのスクレーピングしようとしたときに、はまった日本語の取扱いについて書く。 具体的に困った事象 UTF8で保存したファイルのHaskellプログラムの中で hoge == "次ページ" のように、ごく普通に日本語の文字列マッチングした場合の話。 hogeは、tagSoupを通して加工した文字列が入っている変数。次ページというのが、ここでマッチさせたい日本語の文字列。 Webブラウザで保存してあったHTMLファイルをreadFileで、読み込んだ場合はTrueが返ってくる。し
Haskell の文字列と文字コードについて。 例えば日本語文字列をprint で表示してみると、 Prelude> print "こ" "\12371" と表示されます。 これは、 Unicode のコードポイント と呼ばれるものが表示されています。 次に、文字列をCodec.Binary.UTF8.String.encodeString を使ってUTF8 文字列に直してから表示してみると Prelude> :m + Codec.Binary.UTF8.String Prelude Codec.Binary.UTF8.String> print $ encodeString "こ" "\227\129\147" と表示されます。 これは、 "こ"のコードポイントに対応するUTF8 エンコーディング が表示されています。 Haskell のコード内で文字列をUTF8 エンコードする処理が必
例えば、putStrLn :: String -> IO ()に注意すると、次のようになる。 Prelude> putStrLn "hello" hello Prelude> do { putStrLn "hello"; return "yes" } hello "yes" GHCiは実際には単なる式ではなく文を受け付ける。そのため、値や関数を名前に束縛して、後で式や文の中で使うことができる。 GHCiプロンプトが受け付ける文の構文は、Haskellのdo式における文の構文と全く同じである。ただし、こちらにはモナドの多重定義はない。プロンプトに入力される文はIOモナドの中になければならない。 Prelude> x <- return 42 Prelude> print x 42 Prelude> x <- return 42という文は、「return 42をIOモナドの中で実行し、結果をx
2014.07.06追記 RecordWildCardsとNamedFieldPunsが逆になっていたのを修正(thx fujimura)。 --ちゃんと確認せねば 2015.03.30 追記 ghc-7.10! はじめに ghc-7.10.1現在、ghc言語拡張は99個(!!)あります。 この中より辛い表記から解放してくれるものを紹介します。 ghci -package ghc GHCi, version 7.10.1: http://www.haskell.org/ghc/ :? for help Prelude> :m DynFlags Prelude DynFlags> length DynFlags.xFlags 99 Prelude DynFlags> mapM_ (putStrLn . flagSpecName) DynFlags.xFlags AllowAmbiguousT
奏汰です. 今夏,某海鮮丼屋さんでアルバイトをするために,今からでもHaskellをしっかりお勉強しようと思います. ということで,まずはインストール覚え書きをば.ぶっちゃけほとんど参考先ママですけども.ええ. 細かいこと分かってないので,かなり冗長的かもしれません.悪しからず. あ,使用環境はHomebrew on OSX 10.10.3 です. 環境確認 まずはHomebrewのアップデートしときましょう. $ cd ~ $ brew update error: Your local changes to the following files would be overwritten by merge: (略) error: The following untracked working tree files would be overwritten by merge: (略) Pl
24 Days of GHC Extensions Welcome View Patterns Pattern Synonyms Record WildCards Bang Patterns Rebindable Syntax List Comprehensions Type Operators Recursive Do Nullary Type Classes Implicit Parameters Type Families Multi Param Type Classes Functional Dependencies Deriving Derive Generic Overloaded Strings Rank N Types Existential Quantification Scoped Type Variables Arrows Template Haskell Stati
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く