Hi Tom,
thank you for the explanation.
I believe you are suggesting that there is redundancy in the
implementation details of these libraries, not in the APIs they
expose.
I meant to say that there is redundancy in *both*. The libraries
mentioned in this thread re-implement the same type
Hi Clark,
How is this a problem?
If you're representing text, use 'text'.
If you're representing a string of bytes, use 'bytestring'.
If you want an array of values, think c++ and use 'vector'.
the problem is that all those packages implement the exact same data
type from scratch,
Hi Tom,
On Tue, Jun 04, 2013 at 04:01:37PM +0200, Peter Simons wrote:
How is this a problem?
If you're representing text, use 'text'.
If you're representing a string of bytes, use 'bytestring'.
If you want an array of values, think c++ and use 'vector'.
the problem
Hi Magnus,
How does a distro get to be added like that?
check out http://hackage.haskell.org/trac/hackage/ticket/570.
Take care,
Peter
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Is it just me or have some of the old Haskell Platform releases
disappeared from haskell.org?
The 2010.x links from http://www.haskell.org/platform/prior.html also
point to non-existent pages.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Don Stewart don...@gmail.com writes:
Here's the final program: [...]
Here is a version of the program that is just as fast:
import Prelude hiding ( getContents, foldl )
import Data.ByteString.Char8
countSpace :: Int - Char - Int
countSpace i c | c == ' ' || c == '\n' = i + 1
Hi Don,
Compare your program (made lazy) on lazy bytestrings using file IO: [...]
if I make those changes, the program runs even faster than before:
module Main ( main ) where
import Prelude hiding ( foldl, readFile )
import Data.ByteString.Lazy.Char8
countSpace :: Int - Char - Int
Hi Don,
Using this input file stored in /dev/shm
So not measuring the IO performance at all. :)
of course the program measures I/O performance. It just doesn't measure
the speed of the disk.
Anyway, a highly optimized benchmark such as the one you posted is
eventually going to beat one
Hi Hamish,
Features in process-leksah have been merged into process. For newer
versions of GHC leksah-server just depends on process.
I trust this applies to the unreleased beta version that you just
announced, right? (The latest release versions still seem to depend on
process-leksah.) In
Hi Hamish,
would it be possible to get an update for process-leksah that works with
recent versions of the 'filepath' package? I cannot build leksah-server
with GCC 7.4.2 because of this issue.
Take care,
Peter
___
Haskell-Cafe mailing list
Hi Tobias,
A 1.1.4.0 build-depends: B ==2.5.* C ==3.7.* (overspecified)
B 2.5.3.0 build-depends: C ==3.* (underspecified)
C 3.7.1.0
Everything works nice until C-3.8.0.0 appears with incompatible changes
that break B, but not A.
Now both A and B have to update their dependencies
Hi Tobias,
When such a situation has arisen in the past, it's my experience
that the author of B typically releases an update to fix the issue
with the latest version of C:
B 2.5.4.0 build-depends: C = 3.8
So that particular conflict does hardly ever occur in practice.
And
Hi Clark.
I think we just use dependencies [to specify] different things.
If dependency version constraints are specified as a white-list --
i.e. we include only those few versions that have been actually
verified and exclude everything else --, then we take the risk of
excluding *too much*.
Hi Janek,
How to determine proper version numbers?
if you know for a fact that your package works only with specific
versions of its dependencies, then constrain the build to exactly those
versions that you know to work.
If *don't* know of any such limitations, then *don't* specify any
Hi Clark,
It's not restrictive.
how can you say that by adding a version restriction you don't restrict
anything?
I just don't like to claim that my package works with major versions
of packages that I haven't tested.
Why does it not bother you to claim that your package can *not* be
Hi Vagif,
I fail to see how a fringe bleeding edge linux distro undermines a
haskell platform.
Arch Linux does not comply to the Haskell Platform. That fact communicates
to users of the distribution: We, the maintainers, don't believe that HP is
relevant. Clearly, this undermines the Haskell
Hi Timothy,
the Haskell community is not the right audience to be addressing these
complaints to. Instead, you should be talking to the ArchLinux developers,
who are responsible for packaging Haskell-related software in the [core]
and [extra] repositories. I am no expert in these matters, but my
Hi,
'extensible-exceptions' used to be a part of GHC, but it appears that
the package has been dropped from 7.6.1. Yet, the release notes on
haskell.org don't say anything about this subject (other than TODO).
Was that change intentional?
Take care,
Peter
Hi Brandon,
I think you'd have to install a separate ghc-mod binary for each one,
then, as it looks to me like ghc-mod is using ghc-as-a-library. That
is, it actually has the compiler linked into itself.
I see, thank you for the clarification.
One more thing: I would like to configure
Hi,
I am a happy user of Emacs with ghc-mod for Haskell programming. There is just
one issue I've run into: I have multiple versions of GHC installed on my
machine. Now, ghc-mod seems to use the GHC binary that was used to compile
ghc-mod itself, but that is not the version I want it to use for
Hi Johannes,
ghc-7.0 is working but when I use it to compile 7.4,
it breaks with some linker error (relocation R_X86_64_PC32 ...)
it also suggests recompile with -fPIC but I don't see how.
I seem to remember that this is a problem with the old version of
GCC that's used to build the
Hi Chris,
I'm also wondering about this issue:
- How do you handle packages that depend on system libraries? hsdns,
for example, requires the adns library to build. Does Hub know about
this?
Does Hub know about system-level libraries that Haskell packages need to
build, like
Hi Chris,
hub save project project.har
I am curious to see what this file looks like. Could you please post a
short example of one?
Take care,
Peter
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi Chris,
There is a worked out example at the bottom of the overview up on the
web site: http://justhub.org/overview
thank you for the pointer, I think I found it:
^=7.4.1
List-0.4.2
fgl-5.4.2.4
hexpat-0.20.1
mtl-2.1.1
regex-base-0.93.2
regex-compat-0.95.1
Hi Chris,
How much time, approximately, did you spend working with Nix?
1 hour? 10 hours? 10 days? 10 months?
You know that it is not 10 months.
actually, no. I don't know that, which is why I asked. I find it hard to
get an answer from you, though. It seems strange that you keep such
Hi Chris,
Where is this functionality provided by Nix?
simply run these commands
# Haskell Platform 2009.2.0.2
nix-env -p ~/ghc-6.10.4 -iA haskellPackages_ghc6104.haskellPlatform
# Haskell Platform 2010.2.0.0
nix-env -p ~/ghc-6.12.3 -iA haskellPackages_ghc6123.haskellPlatform
# Haskell
Hi Chris,
I cannot see how it can address any of the user-level Haskell package
database management and sandboxing mechanisms that I mentioned in the
announcement and subsequent emails.
have you ever actually used Nix?
Take care,
Peter
___
Hi Chris,
I deatiled some of my trials with Nix -- I wasn't making it up!
of course, I didn't mean to imply that you were. My question was phrased
poorly, I am sorry.
What I meant to ask is: how much time, approximately, did you spend
working with Nix? 1 hour? 10 hours? 10 days? 10 months?
Hi Ben,
I've just pushed Repa 3 onto Hackage, which has a much better API
than the older versions, and solves several code fusion problems.
when using the latest version of REPA with GHC 7.4.1, I have trouble
building the repa-examples package:
| Building repa-examples-3.0.0.1...
|
Hi Joachim,
Please make sure the list is not set to subscriber only; it is an
unreasonable burden to subscribe for people who just want to send you
one question, and possibly have to contact dozends of different
package authors, e.g. as a distribution packager.
+1
I have had that
Hi Ben,
Please try again now.
thank you very much for the quick update! Everything installs fine now.
I've also packaged the latest versions for NixOS.
Take care,
Peter
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi guys,
I'm not happy with asynchronous I/O in Haskell. It's hard to reason
about, and doesn't compose well.
Async I/O *is* tricky if you're expecting threads to do their own
writes/reads directly to/from sockets. I find that using a
message-passing approach for communication makes
Hi Daniel,
I've been trying to write networking code in Haskell too. I've also
come to the conclusion that channels are the way to go.
isn't a tuple of input/output channels essentially the same as a stream
processor arrow? I found the example discussed in the arrow paper [1]
very
Hi guys,
I am please to announce that wxHaskell 0.13.2 has just been uploaded
to Hackage.
when I try to build the latest version on Linux/x86_64 running NixOS, I
get the following error at configure time:
Setup: Missing dependency on a foreign library:
* Missing C library:
Hi guys,
We're pleased to announce the release of the Haskell Platform: a
single, standard Haskell distribution for everyone.
Haskell Platform 2011.4 is fully supported on NixOS http://nixos.org/.
Take care,
Peter
___
Haskell-Cafe mailing list
Hi Jose,
Peter, would using parsec 3.x be an acceptable solution to you?
well, we can link xmobar with parsec 3.x on NixOS. The situation
is tricky, though, because the latest version of parsec that we
have, 3.1.2, doesn't compile with GHC 6.10.4 anymore, so we'd
have to use some older version
Hi Antoine,
What errors are you getting compiling with GHC 6.10.4? If its a small
thing I certainly don't mind patching things.
I am sorry, my previous statement was inaccurate. Parsec 3.1.2 compiles
fine, but the 'text' library -- on which Parsec depends -- does not. We
can probably avoid
Hi Jose,
I'm happy to announce the release of xmobar 0.14.
previous versions of xmobar used to compile fine with GHC 6.10.4, but
the new version no longer does:
src/Parsers.hs:163:52:
Couldn't match expected type `Char' against inferred type `[Char]'
Expected type:
Hi Mariano,
I'm with mac OS X lion, ghc version 7.2.1 and when a i try to install
MissingH version 1.1.1.0 it fails with [...]
that version of MissingH compiles fine on Linux, so I reckon the
problem you're seeing is in some way specific to Darwin. Your best
bet of getting a fix would be to
Hi Etienne,
Here is a helpful package I wrote to ease the development of projects
using cabal.
thank you very much for this helpful tool!
I notice that Haddock has trouble parsing the documentation:
http://hackage.haskell.org/packages/archive/cabal-ghci/0.1/logs/failure/ghc-7.2
Is that
Hi Andrew,
I know of several places where I can ask maths questions and half a
dozen people will take guesses at what the correct solution might be.
I haven't yet found anywhere where I can say when would a
chi-squared test be more appropriate than a KS test? and get an
informed,
Hi,
the home page of a package on Hackage links to various distributions to
show which versions are available, i.e. Fedora, Debian, FreeBSD, etc. In
NixOS, we have fairly up-to-date package set, and I would like to see
that distribution included on Hackage.
Now I wonder how to get that done? Can
Hi Matthew,
While I haven't investigated myself, from seeing haskell build processes
in the past this is almost certainly not crypto-api's fault and is in
fact your linker's fault. If you are not using it already, try switching
to gold over ld, it may help.
well, memory consumption
Also, it appears that crypto-api needs vast amounts of memory when
compiled with optimization enabled. The latest version 0.6.1 is
effectively unbuildable on my EeePC, which has only 1GB RAM. That
property is fairly undesirable for a library package.
Take care,
Peter
Hi Klaus,
for what it's worth, you might want to consider using this package
instead of Parsec:
http://hackage.haskell.org/package/BNFC
Take care,
Peter
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi Evan,
The reason it's not in Data.List is because there are a bazillion
different splits one might want (when I was pondering the issue
before Brent released it, I had collected something like 8
different proposed splits), so no agreement could ever be reached.
It is curious though
Hi guys,
those of you who use the ArchLinux distribution might be interested to know
that a team of volunteers has put together a binary package repository that
complements the set of Haskell packages that's already being distributed by
ArchLinux. Subscribers of that repository can use Pacman to
Hi guys,
You could use ADNS.Endian.endian from package hsdns in your Setup.hs
to define endianness at compile time.
Cool, it's already there! However I would not recommend to let a
low-level library depend on a higher-level one. I think it would be
cleaner to move the ADNS.Endian
Hi John,
I think the previous responder was asserting the 32M limit, not you.
I believe the previous poster suggested that you use ulimit to provide a
hard upper bound for run-time memory use. That 32M figure seemed to be made
up out of thin air just as an example to illustrate the syntax of
Hi John,
On Mon, Dec 13, 2010 at 10:45 AM, Peter Simons sim...@cryp.to wrote:
Relying exclusively on GHC's ability to limit run-time memory
consumption feels like an odd choice for this task. It's nice that
this feature exists in GHC, but it's inherently non-portable and
outside
Hi Mathieu,
Why don't you use ulimit for this job?
$ ulimit -m 32M; ./cpsa
yes, I was thinking the same thing. Relying exclusively on GHC's ability to
limit run-time memory consumption feels like an odd choice for this task.
It's nice that this feature exists in GHC, but it's inherently
Hi Simon,
[Are you] avoiding use of cabal-install and hackage entirely?
yes, I'm trying to provide a package for hledger 0.13 that can be
installed using ArchLinux's native package manager. The current version
is available here: http://aur.archlinux.org/packages.php?ID=20762.
How did
Hi Simon,
thank you very much for your efforts. I wonder whether there is any
particular reason why hledger won't build with process-1.0.1.3?
Take care,
Peter
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi Mathew,
[My GHC installation breaks] when pacman updates a package using an
AUR package, which cabal refuses to install because it can break
other packages (yet the package still gets installed according to
pacman).
this bug has been fixed about two weeks ago; it should no longer
Hi guys,
a while ago, I created an account on Trac. Now, it seems that I've forgotten
both the password and the e-mail address that I used at the time. I cannot
log in, and I cannot make Trac send me the password either. Clearly, I need
the help of a human being with administrator privileges to
Hi,
I just updated to GHC 6.12.1, and I noticed a significant drop in I/O
performance that I can't explain. The following code is a simple
re-implementation of cat(1), i.e. it just echos all data from standard
input to standard output:
module Main ( main ) where
import System.IO
import
Hi Svein,
Hold on, he's using hGetBuf/hPutBuf.
exactly, that's what I was thinking. When a program requests that 'n'
bytes ought to be read into memory at the location designated by the
given 'Ptr Word8', how could GHC possibly do any encoding or decoding?
That API doesn't allow for multi-byte
Hi Robin,
[FuncMP problems with pdflatex]
I have no experience whatsoever with pdflatex, I'm sorry, Funcmp works
just fine for me in normal LaTeX, though. That's not exactly what you
need, but from the sound of it, it might be step forward anyway.
First of all, try writing the MetaPost files
Hey Bulat,
I tried removing the import System.Win32, but unfortunately it
only got me so far:
| Examples$ ghc -i.. -O2 -funbox-strict-fields --make wc.hs -o wc
| Chasing modules from: wc.hs
| [ 1 of 16] Compiling System.FD( ../System/FD.hs, ../System/FD.o )
|
|
Hi Bulat,
general-purpose binary I/O library for Haskell.
where i can find it?
the module is available here:
http://cryp.to/blockio/fast-io.html
http://cryp.to/blockio/fast-io.lhs
The article is incomplete and a bit messy, but the code
works fine. Feedback and ideas for improvement
Bulat Ziganshin writes:
your BlockIO library is great, but it's usage is limited
to very specific sutuations - when we can save pass state
between processing of individual bytes
In my experience, any other approach to I/O is slow. If you
don't have an explicit state between processing of
Albert Lai writes:
For almost a decade, most (I dare claim even all) Pascal
and C compilers were three-pass or two-pass. It means
perhaps the compiler reads the input two or three times
[...], or perhaps the compiler reads the input once,
produces an intermediate form and saves it to
Joel Reymont writes:
I would challenge everyone with a fast IO library to plug
it into the timeleak code, run it under a profiler and
post the results (report + any alarms).
My guess is that you would learn more if _you_ would plug
the different IO libraries into your test code. I'm
Joel Reymont writes:
I will have to leave this for a while. I apologize but
I'm more than a bit frustrated at the moment and it's not
fair of me to take it out on everybody else.
Never mind. Haskell has a very high potential for frustrating
newcomers. I went through the exact same
Paul Moore writes:
It would be interesting to see standalone code for wcIOB
(where you're allowed to assume that any helpers you
need, like your block IO library, are available from the
standard library). This would help in comparing the
obviousness of the two approaches.
A simple
Tomasz Zielonka writes:
wc :: String - (Int, Int, Int)
wc file = ( length (lines file)
, length (words file)
, length file
)
I have a crazy idea: what if we computed all three length
applications concurrently, with the RTS preempting the
thread when
Some example for writing a text the IO oriented way:
do putStrLn bla
replicateM 5 (putStrLn blub)
putStrLn end
whereas the lazy way is
putStr (unlines ([bla] ++ replicate 5 blub ++ [end]))
Um, maybe it's just me, but I think the first program is far
superior to the
== So how do I write Hello, world? ==
Well, the first thing you need to understand that in a
functional language like Haskell, this is a harder
question than it seems. Most of the code you will write
in Haskell is purely functional, which means that it
returns the same thing every
Daniel Carrera writes:
I'm scared of monads :) I really don't know what a monad
is.
Neither do I, but that doesn't mean that I can't use just
fine. ;-)
putStrLn :: String - World - World
That seems less scary.
Things become a lot clearer when you think about how to
print _two_ lines
Scherrer, Chad writes:
When I'm using ghci, I have lots of modules that I
sometimes want to load as Main, and sometimes I only
want them loaded as a dependency from another module.
Currently, I have to go into each file to change the
module Foo where line to do this.
Maybe the -main-is
Joel Reymont writes:
How do I get a threaded+debug runtime?
You have to build GHC from source code for that. When you
do, make sure your ${srcdir}/ghc/mk/build.mk file contains:
GhcRTSWays += thr_debug
Peter
___
Haskell-Cafe mailing list
Christophe Plasschaert writes:
With erlang or haskell, can we play with or implement
lower network fuction (routing daemon interacting with a
kernel) [...]
I can't speak for Erlang, but in Haskell you can. Through
the Foreign Function Interface, you can access arbitrary
3rd-party libraries
John Goerzen writes:
With networking, you must be careful not to attempt to
read more data than the server hands back, or else you'll
block. [...] With a protocol such as IMAP, there is no
way to know until a server response is being parsed, how
many lines (or bytes) of data to read.
David Roundy writes:
I'm happy of course to have darcs' autoconf macros
included, I'm just not too likely to find time to do it
myself. :)
I have the same problem, which is why I hoped someone would
help with the effort. ;-)
Peter
___
Bulat Ziganshin writes:
afaik Spirit is modeled after ParseC (parsing combinators)
haskell library and Phoenix was needed for this library
because parser combinators require lazy functional language to
work :)
Just a minor nit: the Phoenix library has nothing to do with
parsing. It's
Isaac Jones writes:
./setup configure --user #if it depends on user-local packages
./setup build
./setup install --user
Perhaps install --user should be the default if you
configure --user.
Yes, I think that would be more intuitive. It would also be
nice to be able to configure Cabal
Graham Klyne writes:
http://www.ninebynine.org/Software/HaskellUtils/HaXml-1.12/
This code is all heavily refactored from the original
HaXml for improved XML entity handling, namespace,
xml:lang and xml:base support [...].
Is there any chance of reuniting the two HaXml versions into
a
Thanks for your opinions everybody!
Ketil Malde writes:
I guess you could sometimes have name clashes as well?
I was afraid about those for the longest time too, but in
practice name clashes curiously enough hardly ever occur --
in my experience. The problem only arises when you actually
Iavor Diatchki writes:
Do you have an concrete example which illustrates this
point?
[...] consider a file A.hs that defines some data type T
and exports a function f that is defined in terms of a
private function g. Now if we place g in a file
called Private.hs then A needs to
Dominic Steinitz writes:
I don't think they are in the standard libraries but
there was some discussion about them a few months ago but
I couldn't find a reference.
Peter, Can you supply one?
Naturally. ;-) The discussion started here:
Simon Marlow writes:
if I just want to check out e.g. Haddock, I have to get
the entire fptools repo (350M+, wasn't it?).
I guess the best way to do that with Darcs would be to
(1) pull the fp-tools repository,
(2) delete all files you don't need for Haddock,
(3) pull that into your
SCOTT J writes:
What do I have to do in order not having to type always
:set -fglasgow-exts
Add the line
{-# OPTIONS -fglasgow-exts #-}
at the top of the source code. Then the flag will be set
when you load the module. This works for all kind of
settings:
Dimitry Golubovsky writes:
System.Process.runInteractiveCommand
Is this available only in 6.4?
Yes, I think so. The module's source code was posted to the
-libraries mailing list a while ago, but GHC 6.4 is the
first release to ship it.
Peter
Dimitry Golubovsky writes:
Does there exist any analog of popen in the standard Haskell libraries?
Maybe System.Process.runInteractiveCommand is what you need?
http://haskell.org/ghc/docs/latest/html/libraries/base/System.Process.html
Peter
___
Johan Glimming writes:
What is the best way of replacing yacc/bison and (f)lex when
migrating the project into Haskell?
My favorite tool for writing parsers is this one:
http://www.cs.chalmers.se/~markus/BNFC/
You give it a grammar in BNF notation, and it will generate
parsers and
Jan-Willem Maessen writes:
Is it really clear or obvious what
map . (+)
means?
Yes, it is perfectly obvious once you write it like this:
incrEach :: Integer - [Integer] - [Integer]
incrEach = map . (+)
Now compare that to the following function, which does the
some thing but
Glynn Clements writes:
Well, there is a sort-of canonic version for every path;
on most Unix systems the function realpath(3) will find
it. My interpretation is that two paths are equivalent
iff they point to the same target.
I think that any definition which includes an iff is
Sven Panne writes:
Hmmm, I'm not really sure what equivalence for file
paths should mean in the presence of hard/symbolic links,
(NFS-)mounted file systems, etc.
Well, there is a sort-of canonic version for every path; on
most Unix systems the function realpath(3) will find it.
My
Sven Panne writes:
OK, but even paths which realpath normalizes to different
things might be the same (hard links!).
Sure, but paths it normalizes to the same thing almost
certainly _are_ the same. ;-) That's all I am looking for.
In general, I think path normalization is a nice-to-have
John Meacham writes:
you can use DrIFT to automatically create
bar_u to update a field and
bar_s to set a field.
That is exactly what I need. Is there, by any chance, a
solution that's based on Template Haskell too? Not that I'd
have something against DrIFT; I'm just curious to know.
Isaac Jones writes:
http://www.haskell.org/hawiki/LibraryDocsNeedingHelp
This is a great idea.
I have been thinking you know what would make
contribution to the library efforts even simpler? If they
were available in a Darcs repository.
Saying darcs push after you've spontaneously added
Ben Rudiak-Gould writes:
1. Programs using the library will have predictable
(exploitable) bugs in pathname handling.
2. It will never be possible to change the current weird
behavior, because it might break legacy code.
I completely agree.
Handling file path specifications as
John Goerzen writes:
timeDiffToSecs :: TimeDiff - Integer
timeDiffToSecs td =
(fromIntegral $ tdSec td) +
60 * ((fromIntegral $ tdMin td) +
60 * ((fromIntegral $ tdHour td) +
24 * ((fromIntegral $ tdDay td) +
30 *
Einar Karttunen writes:
What is the best way of doing an computation with a timeout?
At http://cryp.to/child/ you'll find a very readable and
straightforward implementation of a generic timeout
function:
type Timeout = Int
timeout :: Timeout - IO a - IO (Maybe a)
The function uses the
Ahn Ki-yung writes:
I've recently started a small tutorial for server
programming in concurrent Haskell.
Very cool. Network programming is one of my interests, too,
and unfortunately it is still very difficult to get started
with that in Haskell. Thanks for putting all that effort
into the
Keean Schupke writes:
What about Peter Simons' BlockIO library?
I think BlockIO solves a different problem than the other
proposals do. BlockIO doesn't really abstract different
types of input sources, it does the opposite: it restricts
I/O handlers to operate on raw memory buffers. A 'Handler
Mark Carroll writes:
Is there a way in Parsec to, within a parser, throw an
error generated by another parser?
How about wrapping the ParseError into your result type?
Like this:
data Foo = Bar String | ... | BadLuck ParseError
Then you could run any number of parsers (with 'runParser')
Benjamin Franksen writes:
If a foreign function (e.g. from a C library) is really
pure, then I see no way to tell that to the compiler
other than using unsafePerformIO.
What's the problem with importing it with a pure signature?
Like this:
foreign import ccall unsafe sin :: CDouble -
Henning Thielemann writes:
Variable length argument lists are really a mess. Why are
people so keen on them?
One advantage is that you need to type fewer characters.
It's, well, not _that_ important, I'll readily admit. :-)
But
vsnprintf i = %d;\tj = %s 12 test
is more compact than any
Jon Fairbairn writes:
vsprintf %d, your age is %s\n John (10::Integer)
is type incorrect, but won't be reported at compile time.
Hmmm. Right. You'd need Template Haskell for that.
I see.
Peter
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
1 - 100 of 137 matches
Mail list logo