[Haskell] Announce: Yi 0.6.4.0
Hi all, I'd like to announce a new release of Yi, a text editor written in and extensible in Haskell. ## What's new? * Minimal Java syntax lexer * Many, many Pango improvements (both speed and behavioral!) * Creating files by simply editing files that don't yet exist now works correctly * Yi now supports keymaps with the hyper key * Yi now has some support for more complicated window layouts ## What's Yi? Yi is a text editor written in Haskell and extensible in Haskell. The long-term goal of the Yi project is to provide the editor of choice for Haskell programmers. Yi now works relatively well in the terminal, using the vty package, and also has Gtk frontends using vte (which interfaces with the terminal interface) and a Pango frontend. There is also a Cocoa frontend under (slow) development. ## Installation Using cabal install: $ cabal update $ cabal install yi The default UI depends on the vty package, which will only compile with the ncurses development headers available. On Ubuntu, you need to install the `libncurses5-dev` package. On Windows, you'll need to disable the default vty terminal UI, and use a Gtk UI instead (the vte UI requires vty, so you can't install that either): $ cabal install yi -f-vty -fpango (Windows support is not well-tested, though.) Optionally also install the contrib package: $ cabal install yi-contrib ## Features * A purely functional editor core * Key-bindings written as parsers of the input * Emacs, Vim and (partial) Cua emulations provided by default * Console front-end (Gtk2Hs and Cocoa front-ends in development) * Static configuration (XMonad style) for fast load * Haskell support: * Lexical highlighting and (unicode-based) beautification. * Layout-aware parenthesis-matching * Auto-indentation * cabal-build within the editor * Syntax highlighting for a number of other languages (latex, python, perl, ...) ## More Info Read the README [1] on GitHub for more information. The source code [2] is also hosted there. ## Credits This release is brought to you by: * Andrew Myers * Andy Gocke * arenl * Corey O'Connor * Jeff Wheeler * Jeremy Wall * Reiner Pope * Robin Green and all the contributors to the previous versions. Also, Yi would not exist without all the work put into the Haskell platform. [1] https://github.com/yi-editor/yi/blob/master/README.md [2] https://github.com/yi-editor/yi -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell-cafe] For Project Euler #24 you don't need to generate all the lexicographic permutations Spoiler
On Sun, May 8, 2011 at 10:41 AM, cas...@istar.ca wrote: For Project Euler #24 you don't need to generate all the lexicographic permutations by Knuth's method or any other. This is a clever, smart solution. You should post it to the Haskell Wiki page [0]. [0] http://haskell.org/haskellwiki/Euler_problems/21_to_30 -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Why not Darcs?
On Thu, Apr 21, 2011 at 3:29 PM, Andrew Coppin andrewcop...@btinternet.com wrote: I'm sure this must be a VFAQ, but... There seems to be universal agreement that Darcs is a nice idea, but is unsuitable for real projects. Even GHC keeps talking about getting rid of Darcs. Can anybody tell me what the problems with Darcs actually are? Yi, a fairly large and old repository, recently moved to (primarily) Git. Our motivation was not flaws in Darcs, but rather GitHub. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell] ANN: Yi 0.6.3
On Mon, Mar 28, 2011 at 7:33 AM, Edward Amsden eca7...@cs.rit.edu wrote: * mention alex in the cabal file (I don't remember the syntax but there is a way to specify tools needed to build). build-tools: alex in the library/executable section Oh, my bad. I removed this because alex is included in the Platform, so it seemed like it'd always be available. I'll add it back. I originally pulled pointedlist from Yi, but since switched from data-accessor to fclabels per suggestions by a few people. I also put the repo on github, it's on the yi-editor account page. Do we want to do the same switch on Yi? (I'll readily admit that I don't really know the advantages of data-accessor vs. fclabels.) I don't know about rose-zipper, but I'll look at that. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANN: Yi 0.6.3
On Mon, Mar 28, 2011 at 8:46 PM, Jason Dagit dag...@gmail.com wrote: I think Ivan's point is: When we can be precise about dependencies we should be. I agree that someone using the HP as a dependency might not realize that Alex is part of that. Depending on the HP is a conservative overapproximation. Once we have more precise information, even if redundant in this case, I think it's appropriate to document it as such. The alternative to that, is for Cabal to know what HP-2011.1 implies in terms of dependencies and to then be able to check for those things. As I far as Indeed, I think I definitely should have left the build-depends: alex in there, if for no other reason than that Cabal doesn't read my mailing-list post to know that Yi depends on the Haskell Platform. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] ANN: Yi 0.6.3
Hi all, I'm very excited to announce the first release of Yi since last summer. It is relatively light on new features, but it finally should compile nicely on friendly machines. This means, for the most part, machines with the latest Haskell Platform installed. (Windows, unfortunately, has not been tested all that much. See details below, though, for install info.) ## What's new? * New vte UI. This is a terminal UI inside a GUI, much like gvim. It depends on Gtk2Hs for the GUI, and then launches the vty UI inside the terminal. * Compatibility with the latest Haskell Platform release * Start yi-contrib package. We intend to move more stuff here, to clean up the core yi package. * We're now on GitHub (and mirrored on Google Code)! See below for info. ## What's Yi? Yi is a text editor written in Haskell and extensible in Haskell. The long-term goal of the Yi project is to provide the editor of choice for Haskell programmers. Yi now works relatively well in the terminal, using the vty package, and also has Gtk frontends using vte (which interfaces with the terminal interface) and a Pango frontend. There is also a Cocoa frontend under (slow) development. ## Installation Using cabal install: $ cabal update $ cabal install yi The default UI depends on the vty package, which will only compile with the ncurses development headers available. On Ubuntu, you need to install the `libncurses5-dev` package. On Windows, you'll need to disable the default vty terminal UI, and use a Gtk UI instead (the vte UI requires vty, so you can't install that either): $ cabal install yi -f-vty -fpango (Windows support is not well-tested, though.) Optionally also install the contrib package: $ cabal install yi-contrib ## Features * A purely functional editor core * Key-bindings written as parsers of the input * Emacs, Vim and (partial) Cua emulations provided by default * Console front-end (Gtk2Hs and Cocoa front-ends in development) * Static configuration (XMonad style) for fast load * Haskell support: * Lexical highlighting and (unicode-based) beautification. * Layout-aware parenthesis-matching * Auto-indentation * cabal-build within the editor * Syntax highlighting for a number of other languages (latex, python, perl, ...) ## More Info Read the README [1] on GitHub for more information. The source code [2] is also hosted there. ## Credits This release is brought to you by: * Alexey Levan * Gwern Branwen * Issac Trotts * Jean-Philippe Bernardy * Jeff Wheeler * Jeremy Wall * Maciej Piechotka * Malte Sommerkorn and all the contributors to the previous versions. Also, Yi would not exist without all the work put into the Haskell platform. [1] https://github.com/yi-editor/yi/blob/master/README.md [2] https://github.com/yi-editor/yi -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell-cafe] haskell mailing lists followup?
On Tue, Mar 15, 2011 at 6:44 PM, wren ng thornton w...@freegeek.org wrote: Earlier today I got messages from the three lists I'm on (libraries@, haskell-cafe@, glasgow-haskell-users@) about delivery being disabled due to excessive bounces. The re-enabling codes in those emails were expired ---which is supposed to take a few days--- despite only getting them at 4:00am today. I've since logged in to re-enable delivery, though it'll only be a matter of time until it happens again. I got the same emails. I had noticed before I got those that I hadn't received any mail from @haskell.org for several days, whereas other email was coming through fine. Having re-enabled delivery, everything seems fine. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: HSCurses - Hello World? (can't find much documentation)
On Thu, Nov 4, 2010 at 10:16 PM, Michael Forster m...@sharedlogic.ca wrote: On Fri, Oct 22, 2010 at 17:09:52 EDT, Ari Rahikkala wrote: On Fri, Oct 22, 2010 at 11:18 PM, Anonymous Void byteasphyxia at gmail.com wrote: But since I've never seen how the HSCurses functions really integrate together, or any tutorials/examples (besides hsFishEx), I fear toying with it is going to be annoying until I figure it out on my own, especially since I'm already doing a project for someone... So, I was wondering if anyone would be kind enough to point me to (or write me) a basic example of how HSCurses works, maybe w/ some very simple example of interactivity (e.g. getch processing, screen refresh, ..) support. Also, maybe warn me of some of the common pitfalls and differences in hscurses vs ncurses in other languages. UI.HSCurses.Curses follows ncurses quite closely so you can get pretty far reading the NCurses Programming HOWTO: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ Also, http://invisible-island.net/ncurses/ncurses-intro.html. You might also want to look at the vty and vty-ui packages, which provide nicer, higher-level UIs for terminals. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Yi on Windows
On Thu, Oct 14, 2010 at 1:41 PM, Peter Marks pe...@indigomail.net wrote: If you start Yi with no config file, press any key, press h, choose a key binding, then save the file, you get a file c:\Users\peter\.yi\yi.hs Oh, indeed. I didn't realize that. The behavior is defined in Yi.Config.Default.nilKeymap and is very stupid about how it calculates the config file location. We should be able to get this path from Dyre instead. Hmm, although what I said is correct, it is not causing this problem. Windows 7 does use a different directory for local user data, but it implements some magic to make references to the old location access the new location. If you do a dir of C:\Users\peter, Local Settings doesn't exist, but if you dir C:\Users\peter\Local Settings\Cache\yi, you actually get the contents of C:\Users\peter\AppData\Local\Cache\yi, which does contain the file errors.txt! It is a sort of invisible simlink. Woah . . . The actual problem I am having is that dyre tries to delete errors.txt straight after reading it with readFile. As readFile is lazy, the runtime is keeping the file open so, on Windows at least, it can't be deleted. I'm not really sure why it wants to delete the file though. I guess it is so that any warning messages are only shown the first time you launch after a compile, then deleted. I don't see why the errors file can't just be left so that you see errors whenever you launch. I'll try changing this later this evening (UK) and let you know if it works. The alternative would be to force the file to be read strictly then closed. I think it's only important that they be deleted after a successful compile. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Yi on Windows
On Wed, Oct 13, 2010 at 2:54 AM, Peter Marks pe...@indigomail.net wrote: What should I see when Yi loads? If my config file is broken, where should I see errors? The debug option didn't produce anything useful. I'd expect it in one of three places: 1. In a buffer inside Yi when it launches using the default config. (I'm guessing this isn't the case for you if you haven't seen the error messages, but it'd be in a buffer called *errors* if present. It theoretically should open as the default buffer.) 2. I don't think this should happen, but dyre /may/ make a file yi.errors in ~/.yi/, next to your config file. 3. It might just print it to the console, but that's not happening here, or you would have seen it. After starting up, the help option does open my config, so I think it is in the right place. This is Windows 7 if that makes any difference. I'm not sure; I've never tried installing much Haskell on my Windows machine, so I haven't tested Yi on it. I think somebody worked on it a while back, but I'm not sure if they succeeded (or if it still theoretically works). I'm happy to take a look at the source, any suggestions where I should start? Interfacing with the dyre config loader occurs in src/Yi/Boot.hs, but there's also some interesting stuff related to starting up in src/Yi/Main.hs. The dyre package provides the primary entry-point, and calls Yi.Main.main with the relevant config when it's ready to start. Yi.Boot instructs dyre on how to work with configs for yi. Best of luck, and thanks for playing with Yi! -Jeff -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Yi on Windows
On Wed, Oct 13, 2010 at 6:14 PM, Peter Marks pe...@indigomail.net wrote: The problem is down to getAppUserDataDirectory called in Yi.Boot. This function behaves differently on Windows to Linux... and more so on Windows 7. The first issue is that on Windows it doesn't prepend the . to the directory name, so it is looking in yi, not .yi. On Windows 7, it looks for this directory in a completely different location: C:\Users\peter\AppData\Roaming rather than just C:\Users\peter. This sounds right. Obviously other parts of the program are using a different call to locate the config file as, letting the editor create the default file, it places it in C:\Users\peter\.yi\yi.hs! I can't find the code that does this at the moment - any pointers appreciated. Are you sure that Yi ever writes a default config file? As far as I know, when dyre provides no config from reading a file (or resuming a saved state), Yi will boot with Yi.Config.Default.defaultConfig (that's the one that lets you enter vim or emacs keybindings with 'v' and 'e' respectively), but I don't think it ever writes this to a file. (Note that src/Main.hs calls this; it might make sense to remove that file and move this to Yi.Main or Yi.Boot.) My current feeling is that getAppUserDataDirectory is the correct call to use and the docs should be changed to tell users to put their file where this call points. Further, it would be nice if the editor told you where it was looking if it doesn't find a config file... well actually, when it does find a file too, so you know which one it loaded. I'm in favor of printing it when an error occurs (should no config be an error? not sure, but I'd be inclined to say no). When Yi boots correctly, I'd prefer to not print anything. Or, better yet, just always include it in --debug. Now I'm on to the next problem, it tries to write its error file in a location that doesn't exist: C:\Users\peter\Local Settings\Cache\yi\errors.log. Local Settings doesn't exist on Windows 7. This is now AppData\Local I think. Setting the cacheDir field of the dyre Params should fix this, but I don't have time to try it right now. If dyre defaults to using a directory that doesn't exist on 7, I'd say that's a bug in dyre. We should probably tell Will Donnelly (the maintainer) if that's correct. Again, thanks so much for looking at this. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Yi on Windows
That bug is probably no longer correct. We now use the dyre package for loading the config. Does anybody know if dyre works on Windows in general? On Tue, Oct 12, 2010 at 5:39 PM, Peter Marks pe...@indigomail.net wrote: Does anyone use Yi on Windows? I've managed to get it to build and run, but it doesn't seem to pick up a config file. This seems to be an issue identified over a year ago: http://code.google.com/p/yi-editor/issues/detail?id=269. This would seem to render the editor almost completely useless on Windows. The whole point is to have an editor you can customize in Haskell. Any suggestions appreciated. Thanks Peter ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Ordering vs. Order
On Thu, Oct 7, 2010 at 8:29 AM, Steve Schafer st...@fenestra.com wrote: I think the reason for this conceptual distinction can be traced to the derivation of ordering as the gerund form of the verb order, in that it implies that an action has occurred (or is still occurring). Reading the original message, this seems to be the misunderstanding. The verb order can be interpreted as something like sorting (what we mean in Haskell, can also be said to be giving order to the list) or to command something, which is pretty much a completely different meaning. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Hackage accounts and real names
On Mon, Apr 5, 2010 at 6:00 PM, David House dmho...@gmail.com wrote: You're coming at this from the wrong angle. Rather than saying, why should we allow pseudonyms? we should ask why are we restricting the freedom of users that just wish to contribute code? Exactly. I don't understand the argument about not trusting code from anonymous people. If you don't want to depend on the code, don't. If somebody wants to publish it to Hackage, fine; you still have the choice to use or not use it as you would if they published it anywhere else. If I'm honest, I'm really surprised so many people have replied in favour of the restriction. I've stated an explicit way in which it's hurting the community, and the only person to say anything in the policy's defence other that well, why not? has been Ross (and I hope I dealt with the flaky arguments he linked to in my reply). I'm extremely surprised, too, which is why I responded. (P.s., I certainly wouldn't describe the use of pseudonym anonymity a subculture. Perhaps it's not the norm in academic circles, but virtually all websites requiring a registration allow you to use whatever you like as a username. As does email. As does IRC. I can't think of many bits of the internet that don't.) Yep. On the internet, you get to be anonymous. Why don't we kick people that don't have their name in their email address or IRC nick? -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell.org re-design
On Sun, Mar 28, 2010 at 6:07 PM, Ashley Yakeley ash...@semantic.org wrote: No, you're right, they're ugly colours IMO. I originally mocked up the logo that we chose, so I'm partial to the grayish-blue that I used. Others probably work, but I think the combination of blues in the one that's used a lot now is awkward. I do like the new design idea, but there are a few places I'd like to nitpick, if nobody minds. - The Register | Login button is awkward; it looks like it's centered with the descenders included, so it's a bit too high. Also, a pipe as a separator is strange. (This same style is used a few other places, too.) - The Haskell Programming Language is a bit long. Perhaps make The/Programming Language be a lot lighter, so that Haskell really stands out. - I doubt we'll end up using that font for the headers (unless somebody is ponying up for a license and wants to use Typekit or so), but the 't' as in Welcome _t_o is very strange. - Under Events, I'd move More to be in line with the prev/next buttons. - Under Latest Packages, I think different formatting could make this read more easily. At the very least, the package name and description should be a different color or weight. I'd move the description onto the same line (wrapping if necessary), but a lighter weight and a lighter gray (same color as the Latest Event?). Just some ideas to think about. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskell-friendly Linux Distribution
On Sat, Mar 27, 2010 at 11:11 PM, Chris Dornan ch...@chrisdornan.com wrote: Are there any particularly strong reasons for preferring or avoiding any particular distribution? A bunch of stuff is packaged by dons for Arch; you can see a lot of links to the Arch packages on Hackage. It might be worth looking into. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: [Haskell] ANN: Yi 0.6.2.2
On Thu, Mar 25, 2010 at 7:48 AM, John Lato jwl...@gmail.com wrote: Will it work if you set data-accessor-template 0.2.1.3 in the .cabal file? I think that version is acceptable to both ghc-6.10 and 6.12. It seems so, yes. Unfortunately, I've already made other changes to HEAD that are incompatible with 6.10. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell] ANN: Yi 0.6.2.2
Hi everybody, I'm very excited to announce the first release of Yi in nearly a year. For most of this time, Yi has been rather tough to install because of the mess of dependencies. Today these issues were resolved, and I uploaded a new package to Hackage, so installing Yi should be as simple as: $ cabal update $ cabal install yi If you have Gtk2Hs, it'll automatically build with Pango support, too. If not, it'll use the vty package on Hackage. I'm not sure whether either of these will work on Windows, unfortunately. There have also been a few changes since the last release a year ago: * Improvements to the Scion bindings, which may make it easier to work with GHC from within the editor. * Initial support for TextMate-style snippet support. * Various Pango UI improvements (e.g. horizontal scrolling support and improved support for tabs). * Various parser improvements, especially for the Haskell and JS parsers. * Replaced HConf with Dyre, which handles xmonad-style configs and recompiles. * Upgrade to VTY 4.0, which has large speed improvements. * Many, many optimizations. Yi 0.6.2.2 is on Hackage here: http://hackage.haskell.org/package/yi-0.6.2.2 -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANN: Yi 0.6.2.2
On Wed, Mar 24, 2010 at 2:03 PM, Colin Paul Adams co...@colina.demon.co.uk wrote: Is it for ghc 6.12 only? I guess so. 6.12 requires template-haskell ==2.4, and I couldn't get Yi to compile without explicitly adding this into its cabal file. There may be a way to set the dependencies to work for both, but I don't see how. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANN: Yi 0.6.2.2
On Wed, Mar 24, 2010 at 2:27 PM, Colin Paul Adams co...@colina.demon.co.uk wrote: Hm. I edited the cabal file to allow = 2.3 2.5 and it just compiled. Wouldn't this work with 6.12 also? Unfortunately not. Making that change yields: yi$ cabal install Resolving dependencies... cabal: dependencies conflict: ghc-6.12.1 requires template-haskell ==2.4.0.0 however template-haskell-2.4.0.0 was excluded because data-accessor-template-0.2.1.3 requires template-haskell =2.2 2.4 data-accessor-template needs to be compiled with the -ftemplate_2_4 flag, which Cabal doesn't try here, for some reason. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANN: Yi 0.6.2.2
On Wed, Mar 24, 2010 at 2:46 PM, Colin Paul Adams co...@colina.demon.co.uk wrote: Anyway it works. At least, I managed to find out to save a customised version with emacs key bindings. But there is not gtk support, apparently, and I can't find out how to get help. I haven't successfully gotten Gtk2Hs to compile since this update, but if you can, Yi's Pango (Gtk) frontend should work, um, reasonably. There's a #yi room on freenode, but it's usually pretty quiet. The project has been near death for a while; I hope this release gets it in front of a few more people, at the least. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANN: Yi 0.6.2.2
On Wed, Mar 24, 2010 at 3:57 PM, David Leimbach leim...@gmail.com wrote: Well I think I can never figure out what it is I can actually do with Yi once it's installed. Editing keys are nice, but doe it let me build modules or jump in and out of ghci? I'm not sure how mature Scion is now, but the integration should provide for a lot of smart integration with GHC like that. If I remember correctly, it should be possible to, right now, query functions for their types smartly (i.e. actually running through GHC), but also do a lot of stuff with the parser, like automatically dollarify function calls (f x = f $ x, but using the fairly smart parser). It's difficult at best to use tools with no manual. I absolutely agree and issue #253 [1] would take us a long ways in the right direction. [1] http://code.google.com/p/yi-editor/issues/detail?id=253 -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell-cafe] SoC Proposals?
Is there any way to propose a SoC idea right now? My account doesn't seem to have been created correctly, so I can't login to the Trac. I think it'd be interesting for a student to abstract the layout model in xmonad, separating it into an independent library. Other applications could then use this library, like Yi, for other types of tiling. I'd love to see other ideas related to Yi, too. It's a great project but on the verge of death (although the maintainer, JPB, is interested in mentoring). -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] SoC Proposals?
On Tue, Mar 16, 2010 at 9:32 PM, Thomas DuBuisson thomas.dubuis...@gmail.com wrote: Be sure to try your user name without any capitals - that worked for me... The account I created is jeffwheeler -- all lowercase, no spaces -- unfortunately, so that doesn't seem to be the problem I'm hitting. -- Jeff Wheeler Undergraduate, Electrical Engineering University of Illinois at Urbana-Champaign ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Lambda's
NSFW, by the way. On Wed, Dec 30, 2009 at 5:15 PM, Henk-Jan van Tuyl hjgt...@chello.nl wrote: I love lambda's: -- Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Design question
On Wed, Dec 16, 2009 at 10:40 AM, hask...@kudling.de hask...@kudling.de wrote: 1) Is the way i define and use SubSet, the only/valid way to define subsets? 2) What's the best way to make doSomethingElse polymorphic? I'm not very familiar with them, so I'm not sure if it's totally applicable, but generalized algebraic datatypes (GADTs) might be what you're looking for. -- Jeff Wheeler (Sorry, sent this to the author originally.) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Cabal packages - cabbages
On Sun, Sep 20, 2009 at 5:11 PM, Jason Dusek jason.du...@gmail.com wrote: Some day, we're going to need a short, catchy name for Cabal packages. Let's call them cabbages. +1 Yes, let's. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Cabal packages - cabbages
On Sun, Sep 20, 2009 at 5:20 PM, Joe Fredette jfred...@gmail.com wrote: The Cabbage Patch? 'Patch' is pretty well defined, so using it here seems somewhat awkward and confused to me. Plus, I don't think we really want to sound childish, and the first thing I think of is the cabbage patch kid dolls. The original idea, cabbage, doesn't seem silly to me. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Compiling Yi's Dependencies on Windows
Hey all, Yi has a lot of dependencies that currently make it a pain to install on Windows, so I'm wondering which of those can be streamlined for easier install on Windows. So far, I haven't succeeded at getting them to work on my own machine, and I've already spent a lot of time on it. The first major impediment is Gtk2Hs. Duncan has mostly resolved this issue with a minimal build that works on 6.10.4 [1], but I think that this should at least be mentioned on the Gtk2Hs site if it is impossible for now to get cabal-install to work by itself. Then comes bindings for things like curl (this may only be needed for Darcs, I don't remember), zlib, and regex (POSIX). If I remember correctly, zlib, or some other library, is able to ship with its *.c/*.h files and compile them as necessary on Windows. Can this be done for regex-posix and curl, too? On my system now, I've got both GnuWin32 and MSYS (MinGW) installed in attempts to get regex headers that work with regex-posix, but, at the moment, I've run into a wall, in which I get this error when loading or linking to regex-posix (it compiles fine itself): ghc.exe: C:\...\cabal\regex-posix-0.94.1\ghc-6.10.4\HSregex-posix-0.94.1.o: unknown symbol `_regerror' Loading package regex-posix-0.94.1 ... linking ... ghc.exe: unable to load package `regex-posix-0.94.1' I doubt most of these changes are significant (like linking on the gtk2hs site to the 6.10.4 build), but changing them could make many apps easier to install on Windows, not just Yi. Are there any other dependencies that have trouble on Windows which I haven't run into yet? If they're library dependencies, can the headers be included in the Hackage tarball? Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Cabal install on Windows 7
On Wed, Sep 9, 2009 at 2:19 PM, Sebastian Sylvansebastian.syl...@gmail.com wrote: I think it's morally right to run as user by default. Yes, the windows culture has some legacy that may, on occasion, make it slightly harder to use well behaved programs, but it's fairly minor these days. I strongly agree. Presently, on Windows 7, I have to right-click and Run As Administrator and then approve the process via UAC to get anything done under the default --global setting, in much the same way I would have to launch a root terminal and provide my password within GNOME (a la gksu) or other *nix environments (Windows doesn't have anything like sudo, as far as I know). Since it works essentially the same as *nix does, as of Windows 7, I see no reason for a different default. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Cabal install on Windows 7
On Tue, Sep 8, 2009 at 9:17 AM, Peter Verswyvelenbugf...@gmail.com wrote: Ouch, right, I forgot the default is global. It works fine with cabal install --user. And of course I could have edited the default config file, setting user-install: True Well, maybe for newbies this might be a bit confusing. Yep, I agree. I'm not sure why Cabal defaults to --global on Windows, but I found it quite counter-intuitive having come from a Linux environment. I forgot about the different default for some time. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Request for Changelogs
On Thu, Aug 6, 2009 at 9:27 AM, Joachim Breitnerm...@joachim-breitner.de wrote: And cabal/hackage guys: Llease introduce a standard Changes format for cabal packages so that http://hackage.haskell.org/package/hlint readily lists (or links to) changes. (+1) Standardizing a CHANGES format and linking to from Hackage would be a very simple way to do changelogs in Hackage. I like this solution. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ghci identifier listing question
On Mon, Jul 27, 2009 at 6:37 PM, Daniel van den Eijkeld...@gmx.net wrote: Is it possible, to reach the (shadowed) values in any way? I'm not sure about this, but . . . Another question: Is it possible to show only those identifiers that are defined during the interactive session? I only can list all identifiers which start with a given prefix, but I would like to know if GHCi can show me all identifiers defined in a given module or in the current session (by pressing Tab or alike). Yes, this will list the current bindings: :show bindings Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Simple quirk in behavior of `mod`
On Wed, Jul 22, 2009 at 1:34 PM, gladst...@gladstein.com wrote: Is the utility of having (n `mod` 0) return a value greater than the confusion it will engender? In the 99.99% case it's an error. You wouldn't want (n `div` 0) to return 0, I expect. If we want these number-theoretic mod and div operations let's please put them in a separate module. Couldn't the same be said for round-to-even, instead of rounding down like every other language? I doubt any beginners have ever expected it, but it's probably better. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Adding an ignore function to Control.Monad
On Fri, Jul 10, 2009 at 10:10 PM, Don Stewartd...@galois.com wrote: ## Control.Monad.void m a - m () Don Stewart Iavor Diatchki For whatever it's worth, I prefer void as well, for the exact reason Don said. Indeed, 'ignore' indicates to me that the argument won't even be evaluated: it'll be ignored, and skipped. But it is, and only part --- the result --- is ignored. What about 'void' with functors? Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: hsparql, a SPARQL query generator/DSL and client
On Thu, Jul 9, 2009 at 4:34 AM, Nicolas Pouillardnicolas.pouill...@gmail.com wrote: I've looked at your DSL and it looks really neat. While reading I was wondering if GADTs could help having an even nicer query language. To be honest, I really only know the name GADT, I don't really know anything about them. I guess I have a good excuse to go learn them, though, now. :) Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Leaner Haskell.org frontpage
On Thu, Jul 9, 2009 at 6:12 PM, Derek Elkinsderek.a.elk...@gmail.com wrote: I'm not a newbie and I don't use the front page terribly often, but I do like most of the links that are on it. The Ruby page is certainly prettier, but the layout of the Haskell page is fine in my opinion; the difference is mainly eye-candy. On another topic, I know people have expressed that they have liked the fact that the entire Haskell site is a wiki; this expressing openness and community involvement. I personally don't find the Haskell front page too cluttered and I think most of issue in that vein could be resolved by simply making sure the most important/newbie-oriented links are above the fold and appropriately emphasized/categorized as is partially done already. I strongly feel that the homepage should be made more newbie friendly, and I think the Ruby page has done this well, disregarding the news section. I suspect most people who like the Ruby page see the Ruby is... section as especially effective at introducing the language, and the random snippet is a simple way to show off a bit of code before they dive into a tutorial. Furthermore, the Download link is useful, but since GHC can be complicated (and varies by platform), we probably want to include pretty well thought-out instructions behind the link if we include a similar feature. I also quite like the Participate box on the Ruby page, which is very inviting. Regarding the current Haskell homepage, I feel the events are given far too high a place on the homepage. Almost no newbies will be interested in these, and most experienced users will know of the events via the mailing lists. The headlines below that deserve significantly more attention, and perhaps should be updated with greater frequency (and dated, and have RSS). The updated package list is fine, I think. The navigation is a bit tricky, in my opinion. To a beginner (that doesn't know what GHC is), the two download links may be confusing, although I suspect most would correctly assume that Download Haskell was correct option. The Find A Library is a good link, but the Search that follows it is awkward. There are three large search choices for beginners: 1) the search at the top, which confusingly has two submit buttons (with ambiguous differences to a beginner); 2) the Search link near the top of the navigation (which links to an almost empty page that might as well be included at the link's location); and 3) the Search link underneath the About header, which doesn't seem to belong at all. Jeff Wheeler (Sorry, sent this to just Derek at first.) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: hsparql, a SPARQL query generator/DSL and client
I'm excited to announce the first version of hsparql. HSparql makes it easy to query SPARQL-compliant servers using a relatively intuitive DSL and very simple client. SPARQL is a SQL-ish query language for stores of RDF data. So, SPARQL lets you search the structured data in several big databases. I wrote it so that I could search DBpedia [1], a neat site that pulls structured data from Wikipedia's infoboxes, and also ties it to remote data services like MusicBrainz and US Census information. HSparql isn't tied to DBpedia in any way, though, and can search any server. The DSL looks something like this: simple :: Query [Variable] simple = do resource - prefix (iriRef http://dbpedia.org/resource/;) dbpprop - prefix (iriRef http://dbpedia.org/property/;) foaf - prefix (iriRef http://xmlns.com/foaf/0.1/;) x- var name - var page - var triple x (dbpprop .:. genre) (resource .:. Web_browser) triple x (foaf .:. name) name triple x (foaf .:. page) page return [name, page] It's currently available on Hackage [2], and at the moment the source is only available from the tarball hosted there. I'd greatly appreciate any feedback on this package. Thanks! Jeff Wheeler [1] http://dbpedia.org/ [2] http://hackage.haskell.org/package/hsparql ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Non Empty List?
On Fri, 2009-06-05 at 02:08 +0200, Günther Schmidt wrote: As for the zipper: In some of the examples I've seen, the zipper is implemented on top of an underlying data structure, but not the data structure itself. In my app I was actually going to pull a zipper over it, once I had the underlying structure right. I have a package on Hackage that implements a zipper-ish non-empty list structure. PointedList [1] is a datatype composed of a list of items on the left, the current item, and a list of items on the right. Is that close to what you're looking for? [1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/pointedlist ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] May all logos be freely used?
On Tue, 2009-05-26 at 18:36 +0200, Max Rabkin wrote: So at least any logos on the wiki should be usable under that license. Furthermore, I released all my logos (the lambda/bind combination that won) into the Public Domain. Of course, derive from them as you wish, and there are a couple of tools around to generate various versions with roudedness and different colors. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Error message reform (was: Strange type error with associated type synonyms)
On Thu, 2009-05-28 at 01:45 +0400, Bulat Ziganshin wrote: for me, it was better than ghc errmsg. main thing is that i don't feel automatically what is expected and what is inferred. here Hugs says that True is Bool and the remaining is Int, so i feel the situation I absolutely agree about expected/inferred. I always forget which is which, because I can figure both could apply to each. Say, in this simple example: Prelude let f = (+5) Prelude f abc interactive:1:2: Couldn't match expected type `Integer' against inferred type `[Char]' In the first argument of `f', namely `abc' In the expression: f abc In the definition of `it': it = f abc Does expected mean that, based on the type signature, it should be an Integer, or based on the argument that I provided, it should be a String? The same goes for the inferred type: it knows what the type of the literal argument (String), so I would assume the inferred type was the type in the function's signature. Unfortunately, my reasoning in both cases can go the wrong way . . . Better language may be much more helpful, although I'm not sure what may be easier to interpret. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Re[2]: [Haskell-cafe] Re: Error message reform (was: Strange type error with associated type synonyms)
On Wed, 2009-05-27 at 23:59 -0400, John Dorsey wrote: There was one hang-up; it wasn't at all clear which referred to the term, and which referred to the context. (Really both types are inferred.) This stopped bothering me when I decided it didn't matter which was which, and I could generally find the problem pretty quickly just knowing the location and the types involved. Of course, I can see how the messages are probably much less useful to non-native speakers, and that's quite important. Something along the lines of inferred type droozle for term, but expected type snidgit in context. As a native English speaker myself, I've also found it awkward because both types are inferred, I suppose. The alternate format you've suggested would make it much more clear, in my opinion, and I strongly feel that the current version should be replaced with yours. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] WolframAlpha
On Wed, 2009-05-06 at 17:13 -0700, Warren Henning wrote: What I'd like to see most is WolframAlpha in action. At this point it is vaporware to me and for all I know this could be the beginning of a neverending charade of coming to a Interwebs near you Real Soon Now every few months for the next 10 years, like Duke Nukem Forever. The website says May 2009 (this month), and I don't know of any previous announcements claiming to have a date. I'm buying this one. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Best text editor
On Tue, 2009-04-14 at 11:34 +0200, Achim Schneider wrote: Yes, and I figured I'd have to edit the keymap to get productive. While it features a fully functional subset of vim that's more than enough to efficiently edit files, it's not the subset I use... and then I was too lazy to actually do it. As one of the Yi developers, I'd love to hear some more specific feedback on this. Do you remember any specific Vim features that were missing? Documentation is badly lacking, too, it's like trying to configure xmonad without xmonad-contrib and all the docs. This is slowly improving, and Yi's haddock documentation now builds fine. This should soon be available on Hackage also, when the Haddock there is upgraded. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell] Re: Hi-res/vector version of logo?
On Wed, 2009-04-08 at 23:48 +0200, Eelco Lempsink wrote: Could you email / upload to the wiki / put online a vector or hi-res version of the logo(s) you made? That will make it easier for people to actually use the logo or make derivates from it. (Preferably in an Open format, such as SVG, if Photoshop can do that.) I'm not a licensing guru, but it probably be nice if you make the logo available under some free license or at least put a message there that you allow such usage ;) (I've CC'd haskell@, as I feel this discussion might be useful there.) Sure, I'm happy to convert the PSDs (available in the src/ directory, here [1]) into SVG, but I will have to do so through tracing them in InkScape unless somebody has another solution. Rather than converting every one of these (it takes some time to get it right), it'd be easier for me to only convert the ones the community decides to use. Will further voting happen on these soon? If you're looking for one right now, please reply and I'll try to take care of that one. Also, I claim no copyright on these in any form. I am presently placing all these images in the Public Domain, and I suspect Darrin feels the same way for the concept. Jeff Wheeler [1] http://media.nokrev.com/junk/haskell-logos/ ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell-cafe] Link errors in Gtk2Hs are more general than I thought.
On Sun, 2009-04-05 at 07:12 +0200, Bertram Felgenhauer wrote: This looks like the quartz backend was disabled in the cairo C library, not like a gtk2hs problem. I don't know how ports work, but http://trac.macports.org/browser/trunk/dports/graphics/cairo/Portfile defines a 'quartz' variant that enables that backend. Another idea is to reinstall pango. I installed Gtk2Hs on a similar machine earlier tonight, with much success, even with Yi. I did not use MacPorts, and instead followed the instructions on the HaskellWiki [1] under Using the GTK+ OS X Framework (including compiling pkg-config from src). I'm not sure how having attempted the installation through MacPorts may have littered your system, unfortunately. After that installation has succeeded, compiling Yi normally and running `yi -fpango` to launch the GTK UI should work. Earlier tonight, though, I reported an issue that causes only the first line of any buffer in the Pango Yi UI to be visible [2], which makes this much less useful. Jeff Wheeler [1] http://www.haskell.org/haskellwiki/Gtk2Hs [2] http://code.google.com/p/yi-editor/issues/detail?id=261 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] The votes are in!
Yay, thanks everybody! As Eelco pointed out, Darrin Thompson deserves much of the credit for coming up with the design; I just made it pretty in Photoshop. :) On Tue, 2009-03-24 at 08:29 -0400, John Van Enk wrote: Is this the part where all the pundits come out and talk about how Jeff isn't a citizen, eats babies, and wants to turn Haskell into an imperative language? I'm a citizen! I have consciously never executed unsafePerformIO (I know better!). I have been hanging about quite regularly for a little over a year now, when I started playing with Yi, and then intermittently contributing there. I now hang about in #yi most every day, and #haskell quite frequently too. I rarely have anything sufficiently interesting for the mailing list. ;) Again, thanks (and Darrin, too)! Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] runghc Setup.hs doitall
On Sun, 2009-01-18 at 16:22 +, Sebastian Sylvan wrote: Is there some sort of bundle that you can use to install cabal-install easily? Because it looks to me like I'd have to spend the better part of an evening manually downloading and installing the gazillion of dependencies it has, which is far too much work when I just wanted to spend ten minutes playing with some package... There's a bootstrap.sh file in root of the cabal-install that can do this automatically. In my experience, it usually fails because of missing dependencies like zlib-dev on my own system, but those are easy to fix, at which point I can rerun the bootstrap script. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] runghc Setup.hs doitall
On Sun, 2009-01-18 at 18:24 +, Duncan Coutts wrote: In my experience, it usually fails because of missing dependencies like zlib-dev on my own system, but those are easy to fix, at which point I can rerun the bootstrap script. Patches accepted. Without digressing too much, I don't think much can be done here. I would not (and should not) expect the bootstrap.sh file to use apt to get the missing dependencies as I had to do. I don't think there's any general solution to this, beyond better error handling (which apparently you just improved). Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell] An Alternative Data.List.Zipper
Hi, (I also sent this to libraries@, but without response; I'm posting here for a wider audience.) I'm somewhat of a beginner in Haskell, so take what I say with a grain of salt, please. The ListZipper implementation seems very odd to me, and #haskell seemed to agree with me. The current package implements a Zipper with data Zipper = Zipper ![a] ![a] which allows for empty zippers, among other things. Very strange to me. It also seems unnecessarily strict. There are also no expected typeclasses implemented, like Foldable or Traversable. I thought it would be interesting to try fixing these problems with a much cleaner design, and I'd like to share what I came up with: http://hpaste.org/14030 I'd very much appreciate some criticism of the code so that I can improve it. I'm not sure how best to provide this alternative on Hackage; should we make this merely a newer version of the old library, provide it in a conflicting package, or find a new namespace for it and provide it there? Thanks, Jeff Wheeler ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] An Alternative Data.List.Zipper
On Sat, 2009-01-17 at 10:44 -0800, Max Rabkin wrote: This traverses the list three times (reverse, init and last are each linear time): fromListEnd xs = Zipper (reverse $ init xs) (last xs) [] But we only need to do it once: fromListEnd xs = let x:xs' = reverse xs in Zipper xs' x [] I don't *think* this has an effect on strictness/laziness, since both versions are strict in the spine of the list. Excellent suggestion; your solution is much more readable and faster. I've made the change here: http://hpaste.org/14030#a1 Thanks, Jeff Wheeler ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] An Alternative Data.List.Zipper
On Sat, 2009-01-17 at 21:55 +0100, Jean-Philippe Bernardy wrote: I think it should admit empty, and the traversable instance should traverse the first list in reverse. I fixed the latter issue so that the behavior is correct (I think). I tested it like this: forM (next $ next $ fromList [1..5]) $ \i - do { print i; return i } 1 2 3 4 5 [1,2] 3 [4,5] which I believe is proper. I'm undecided about allowing them to be empty. I don't know the theory or math behind zippers (I'm sure there are some papers written about it), but it doesn't make much sense to be empty. I got that impression from #haskell, also. Thanks for the comments. :) Jeff Wheeler ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] An Alternative Data.List.Zipper
On Sat, 2009-01-17 at 17:41 -0500, David Menendez wrote: That's correct, but I think you'd be better off defining OpApplicative (or Backward, as I call it) locally and avoiding the two reverses. I'll have to look into this more; I don't really understand applicatives right now, so I can't use them yet. :) If you look at a zipper as a list with a selected element, then it doesn't make sense to talk about a zipper of an empty list. Apparently a zipper can be empty, as the focus is the rest of the list, not the current element. It seems that my file is not a Zipper, but rather a PointedList (thanks to roconner in #haskell). Therefore, I've changed my file to use the new name throughout, including a new module name. With this change, I think it's now appropriate to post on Hackage. That being said, I'd prefer fromList to have the type [a] - Maybe (Zipper a), and similarly with next and previous. If people want to live dangerously, they can use fromJust. I agree, and I've made this change. I found this annoying on next/previous though, so I've created a tryNext/tryPrevious that'll return an unchanged PointedList if it's already on the end. Here's the new version: http://hpaste.org/14030#a5 Thanks for the feedback, Jeff Wheeler ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell-cafe] Re: Time for a new logo?
On Wed, 2008-12-17 at 08:42 -0500, Darrin Thompson wrote: If you play with the angles and vary the stroke thicknesses you'll probably get a friendlier look, vs. the military/airline look these have now. The first '' doesn't have to be the same thickness as the lambda. Just another $0.02 us. Thanks for running with it. Those look like I imagined. Thanks for the feedback. I've made two versions[1][2] with subtle rounded edges, although now it becomes evident that I have no design skills. :) I tried giving them varying thicknesses, but I couldn't get anything to look quite right. Everybody is welcome to hack it; I've uploaded a PSD [3] (Photoshop src file); unfortunately, I don't have Illustrator and Inkscape is failing to compile. It might be easier for people to hack if somebody could convert this to an Inkscape file. :-/ X monad could have a variant of this logo too. X= (That's how I originally thought of it, just was too lazy to post it anywhere. Sorry about that.) I like that too; not sure what to do for Yi, though. Anybody mind if I add these to the wiki, too? I feel like I'm taking up tons of space, there. Jeff Wheeler [1] http://media.nokrev.com/junk/haskell-logos/logo8.png [2] http://media.nokrev.com/junk/haskell-logos/logo9.png [3] http://media.nokrev.com/junk/haskell-logos/logo-rounded.psd signature.asc Description: This is a digitally signed message part ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Time for a new logo?
On Thu, 2008-12-18 at 09:55 +1300, George Pollard wrote: Might be interesting to try angling the ends of the stems to look something more like the guillemot in [1]. I might try this in Gimp but I'm no designer :P Unfortunately, neither am I. :P The curvey version (3rd and 4th images on the wiki) is about the extent of my graphic ability, but I'll try to give it a shot regardless. Thanks for the feedback. :) Jeff Wheeler signature.asc Description: This is a digitally signed message part ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Time for a new logo?
On Dec 16, 2008, at 17:40:27 GMT, Darrin Thompson wrote: My $0.02 us: Apologies for ascii art, and hopefully gmail doesn't munge this: I love this ASCII-art version. I tried to make a vector version of it in Photoshop, and I came up with this [1]. Any critiques/suggestions? I'm thinking about a second version that more obviously defines the second '' with color from the bottom-right part of the lambda. Jeff Wheeler [1]: http://media.nokrev.com/junk/haskell-logos/logo1.png___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Time for a new logo?
Darrin Thompson darrinth at gmail.com writes: My $0.02 us: Apologies for ascii art, and hopefully gmail doesn't munge this: I love this ASCII-art version. I tried to make a vector version of it in Photoshop, and I came up with this [1] and [2]. Any critiques/suggestions? I'm thinking about a second version that more obviously defines the second '' with color from the bottom-right part of the lambda. Jeff Wheeler [1]: http://media.nokrev.com/junk/haskell-logos/logo1.png [2]: http://media.nokrev.com/junk/haskell-logos/logo2.png ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Time for a new logo?
On Dec 16, 2008, at 10:08 PM, Ryan Grant wrote: nice. the first is better. in the second, i don't even see the lambda. Thanks the feedback. I just uploaded a new version [1] that is icon- sized, although the font used is Helvetica Neue, which is non-free. I have no free fonts on my Mac, unfortunately, so it'll stay for the moment. Jeff Wheeler [1] http://media.nokrev.com/junk/haskell-logos/logo4.png ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Terminal-like Application Design
Hi, I'm a slight Haskell newbie, but I'm trying to write a terminal-like application that accepts simple commands with optional arguments, and can then execute them. Most of these commands will need IO, as later I will want to communicate over USB for most of them. I was hoping, though, that I could get some comments on the initial architecture I've been playing with [1]. I suspect I should be using some sort of monad to represent the commands, but I don't fully understand monads, and am not sure how it would apply in this context. Should I be using a monad here, and if so, how? Thanks in advance, Jeff Wheeler [1] http://media.nokrev.com/junk/cli/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] maybe a goal and challenge for the Haskell in terms of scientific computing
On Oct 3, 2008, at 8:26 PM, Galchin, Vasili wrote: Here is a site I discovered a while back for another language ... I guess in the back of my mind this more where I was going vis-a-vis scientific computing http://www.enthought.com/ I interned at Enthought over this last summer; it's a very cool place. Many of the open-source scientific libraries could be rewritten in Haskell without significant difficulty, and this actually seems like a decent idea. SciPy and NumPy are the two most significant libraries worth thinking about, in my opinion. Some of the other software, e.g. Traits, is less relevant to scientific software in the context of Haskell. Much of their stack, especially Traits, TraitsGUI, and application libraries are designed to help write applications quickly without much programming experience. With these tools, it's easy for scientists, without knowing much Python, to write large programs that work well for most of their purposes. Jeff Wheeler ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe