[Haskell] Registration now open: Haskell in Leipzig (Germany) December 4/5
Register now - for Amazing Talks and Thrilling Tutorials: HaL-10 Haskell in Leipzig December 4/5 http://nfa.imn.htwk-leipzig.de/HAL2015/ Opens with an invited talk by Joachim Breitner on MonadFix, closes with a presentation of Liquid Haskell by Michael Beaumont. - Johannes Waldmann. PS: HaL-1 (in 2006, on quite the same day) also had a MonadFix talk. Well of course, this has something to do with recurrence... ___ Haskell mailing list Haskell@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
[Haskell] 2nd CfP: Haskell in Leipzig (Germany) 2015
HaL-10 Haskell in Leipzig (December 4/5) http://nfa.imn.htwk-leipzig.de/HAL2015/ We are proud to present Joachim Breitner (nomeata) as our invited speaker. The submission deadline (November 2) is approaching! See you - Johannes Waldmann (PC chair) ___ Haskell mailing list Haskell@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
[Haskell] CfP: Haskell in Leipzig (Germany), 4/5 December 2015
"Haskell in Leipzig" (Germany) workshop http://nfa.imn.htwk-leipzig.de/HAL2015/ welcomes Your contribution. Now. Wir rechnen mit Vorträgen und Tutorien und freuen uns über weitere Vorschläge (Musik/live coding, mini-hackathon, Rätsel, ..) * bis 2. November: Einreichung von Beiträgen * 5. November: Bekanntgabe des Programms * bis 27. November: Anmeldung * 4. und 5. Dezember: Workshop Herzliche Grüße, Johannes Waldmann, Leipzig. ___ Haskell mailing list Haskell@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
[Haskell] Call for participation: 8th International School on Rewriting - ISR 2015
Call for participation 8th International School on Rewriting - ISR 2015 August 10-14, Leipzig, Germany http://www.imn.htwk-leipzig.de/ISR2015/ * early registration deadline: July 1 * student research posters welcome = The 8th International School on Rewriting (ISR 2015) is aimed at master and PhD students, researchers, and practitioners interested in the study of rewriting concepts and their applications. The school features lectures by renowned researchers in rewriting, and is organized in two parallel tracks: Basic: aimed at students that enter the field. Aart Middeldorp and Sarah Winkler: Introductory Course Advanced: several shorter courses, showing different areas of rewriting research, with applications. David Sabel and Manfred Schmidt-Schauß: Rewriting Techniques for Correctness of Program Transformations Makoto Hamana: Algebraic Semantics of Higher-Order Abstract Syntax and Second-Order Rewriting Santiago Escobar: Term Rewriting applied to Cryptographic Protocol Analysis Hans Zantema: SAT/SMT encodings for rewrite problems Femke van Raamsdonk: Higher-Order Rewriting Alfons Geser: Proving Abstract Rewriting Properties with PVS Georg Moser: Termination and Complexity Detlef Plump: Rule-based Graph Programming Also, we encourage participants to submit a presentation of their research, in the form of a poster. These posters will be reviewed by experts in rewriting, and will be displayed and discussed during the school. Rewriting is a branch of computer science whose origins go back to the origins of computer science itself (with Thue, Church, Post, and many other prominent researchers). It has strong links with mathematics, algebra, and logic, and it is the basis of well-known programming paradigms like functional and equational programming. In these programming paradigms and corresponding languages, the notions of reduction, pattern matching, confluence, termination, strategy, etc., are essential. Rewriting provides a solid framework for understanding, using, and teaching all these notions. Rewriting techniques are also used in many other areas of software engineering (scripting, prototyping, automated transformation of legacy systems, refactoring, web services, etc.) Rewriting techniques play a relevant role in computing research, education, and industry. International Schools on Rewriting are promoted by the IFIP Working Group 1.6 Term Rewriting. ISR 2015 organizing committee: Alfons Geser, Christine Klöden, and Johannes Waldmann. Note: ISR 2015 is right after CADE ( http://www.inf.fu-berlin.de/cade25/ ) You can go from Berlin to Leipzig in 1 hour by train. ___ Haskell mailing list Haskell@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
[Haskell] 2nd CfP: WFLP 2014 - Workshop on Functional and (Constraint) Logic Programming
(note: Deadline extended to July 10th) *** 23rd International Workshop on Functional and (Constraint) Logic Programming http://www.imn.htwk-leipzig.de/WFLP2014/ colocated with 28th Workshop on (Constraint) Logic Programming (WLP 2014) September 15 - 17, at Leucorea conference center in Lutherstadt Wittenberg, Germany. *** Dates: * submission closes: July 10, 2014 * notification: August 4, 2014 * final version due: September 1, 2014 * workshop: September 15 - 17, 2014 *** The international workshops on functional and logic programming aim at bringing together researchers interested in functional programming, logic programming, as well as their integration. The workshops on (constraint) logic programming serve as the scientific forum of the annual meeting of the Society of Logic Programming (GLP e.V.) and bring together researchers interested in logic programming, constraint programming, and related areas like databases, artificial intelligence, and operations research. In this year both workshops will be jointly organized and co-located, in order to promote the cross-fertilizing exchange of ideas and experiences among researchers and students from the different communities interested in the foundations, applications, and combinations of high-level, declarative programming languages and related areas. The technical program of the workshop will include invited talks, presentations of refereed papers and demo presentations. The joint workshop will consist of two tracks (WFLP and WLP). Sessions of these two tracks will be interleaved. Topics The topics of interest include (but are not limited to): Functional programming Logic programming Constraint programming Deductive databases, data mining Extensions of declarative languages, objects Multi-paradigm declarative programming Foundations, semantics, nonmonotonic reasoning, dynamics Parallelism, concurrency Program analysis, abstract interpretation Program transformation, partial evaluation, meta-programming Specification, verification, declarative debugging Knowledge representation, machine learning Interaction of declarative programming with other formalisms (e.g., agents, XML, Java) Implementation of declarative languages Advanced programming environments and tools Software technique for declarative programming Applications The primary focus is on new and original research results but submissions describing innovative products, prototypes under development, application systems, or interesting experiments (e.g., benchmarks) are also encouraged. Program Committee (WFLP track) Elvira Albert, Complutense University of Madrid, Spain Sergio Antoy, Portland State University Mauricio Ayala-Rincon, University of Brasilia, Brazil William Byrd, University of Utah Michael Hanus , Universität Kiel, Germany Herbert Kuchen, Universität Münster, Germany Carlos Olarte, DECC, Pontificia Universidad Javeriana Cali, Colombia Janis Voigtländer, Universität Bonn, Germany Johannes Waldmann (chair), HTWK Leipzig, Germany Peter J. Stuckey, NICTA and the University of Melbourne, Australia René Thiemann, University of Innsbruck, Austria Organising Committee Stefan Brass (chair) Universität Halle, Germany signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CFP: WFLP 2014 - Workshop on Functional and (Constraint) Logic Programming
23rd International Workshop on Functional and (Constraint) Logic Programming http://www.imn.htwk-leipzig.de/WFLP2014/ colocated with 28th Workshop on (Constraint) Logic Programming (WLP 2014) September 15 - 17, at Leucorea conference center in Lutherstadt Wittenberg, Germany. *** Dates: * submission closes: July 1, 2014 * notification: August 1, 2014 * final version due: September 1, 2014 * workshop: September 15 - 17, 2014 *** The international workshops on functional and logic programming aim at bringing together researchers interested in functional programming, logic programming, as well as their integration. The workshops on (constraint) logic programming serve as the scientific forum of the annual meeting of the Society of Logic Programming (GLP e.V.) and bring together researchers interested in logic programming, constraint programming, and related areas like databases, artificial intelligence, and operations research. In this year both workshops will be jointly organized and co-located, in order to promote the cross-fertilizing exchange of ideas and experiences among researchers and students from the different communities interested in the foundations, applications, and combinations of high-level, declarative programming languages and related areas. The technical program of the workshop will include invited talks, presentations of refereed papers and demo presentations. The joint workshop will consist of two tracks (WFLP and WLP). Sessions of these two tracks will be interleaved. Topics The topics of interest include (but are not limited to): Functional programming Logic programming Constraint programming Deductive databases, data mining Extensions of declarative languages, objects Multi-paradigm declarative programming Foundations, semantics, nonmonotonic reasoning, dynamics Parallelism, concurrency Program analysis, abstract interpretation Program transformation, partial evaluation, meta-programming Specification, verification, declarative debugging Knowledge representation, machine learning Interaction of declarative programming with other formalisms (e.g., agents, XML, Java) Implementation of declarative languages Advanced programming environments and tools Software technique for declarative programming Applications The primary focus is on new and original research results but submissions describing innovative products, prototypes under development, application systems, or interesting experiments (e.g., benchmarks) are also encouraged. Program Committee (WFLP track) Elvira Albert, Complutense University of Madrid, Spain Sergio Antoy, Portland State University Mauricio Ayala-Rincon, University of Brasilia, Brazil William Byrd, University of Utah Michael Hanus , Universität Kiel, Germany Herbert Kuchen, Universität Münster, Germany Carlos Olarte, DECC, Pontificia Universidad Javeriana Cali, Colombia Janis Voigtländer, Universität Bonn, Germany Johannes Waldmann (chair), HTWK Leipzig, Germany Peter J. Stuckey, NICTA and the University of Melbourne, Australia René Thiemann, University of Innsbruck, Austria Organising Committee Stefan Brass (chair) Universität Halle, Germany signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Looking for a Yesod presentation in Leipzig, Germany
Have you applied Yesod recently? ( http://www.yesodweb.com/ ) Would you enjoy presenting your Yesod project to C.S. master's students during a course (Oberseminar) that I'm teaching at HTWK Leipzig currently? Then email me with details: a short description of your project, preferrably including (link to) source code; and a preferred date (in November or December). The presentation can be in German or in English. Total time is 90 minutes, but this should include (plenty of) discussion, or even live coding. No, I don't have any funding for this - except you'll get free beer at our local Haskell group meeting (Stammtisch) which we can schedule for right after your talk. - Johannes. ( http://www.imn.htwk-leipzig.de/~waldmann/ ) ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Workshop on Termination (deadline extension: July 22)
13th International Workshop on Termination (WST) Centro Residenziale Universitario di Bertinoro (near Bologna, Italy) http://www.imn.htwk-leipzig.de/WST2013/ submission: July 22, 2013 notification: July 25, 2013 final version: August 10, 2013 workshop: August 29 - 31, 2013 The Workshop on Termination traditionally brings together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop also provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities. The friendly atmosphere enables fruitful exchanges leading to joint research and subsequent publications. The 13th Workshop on Termination will be held from August 29 to 31, 2013, at the Centro Residenziale Universitario di Bertinoro (Italy). It will be a joint workshop, together with the 3rd International Workshop on Foundational and Practical Aspects of Resource Analysis. The sessions of WST and FOPARA will be interleaved, this way facilitating the interaction between the two communities. ( complete CfP see http://www.imn.htwk-leipzig.de/WST2013/ ) signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Call for Participation: Workshop on Haskell and Rewriting Techniques (June 27, Eindhoven)
The list of accepted papers, and preliminary schedule, for the first International Workshop on Haskell And Rewriting Techniques (June 27, Eindhoven/NL, as part of RDP 2013) is available from the workshop web site http://www.imn.htwk-leipzig.de/HART2013/ Register soon - RDP early registration deadline is June 1! Best regards - Kristoffer H Rose and Johannes Waldmann. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Call for Participation: HaL8 - Haskell in Leipzig (Germany), June 21
Hal8 - Haskell in Leipzig, June 21. visit the workshop web site for program and registration: http://www.bioinf.uni-leipzig.de/conference-registration/13haskell See you - Johannes Waldmann. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CfP Workshop Haskell and Rewriting Techniques (Deadline: May 21)
final call for papers (note: extended deadline) == Rewriting is the science of replacing equals by equals and thus a very powerful method for dealing with equations. There are strong connections between Haskell programming and rewriting. Therefore, we announce a new workshop, International Workshop on Haskell And Rewriting Techniques (HART 2013) http://www.imn.htwk-leipzig.de/HART2013/ to be held on June 27, in conjunction with RDP 2013, in Eindhoven. (RDP contains RTA, the main rewriting conference.) We plan a half day of discussions, in an informal setting, on how Haskell and rewriting techniques and theories can cross-fertilize each other. Topics of interest are, for example, equational reasoning and other rewriting techniques for program verification and analysis; lambda calculi and type systems for functional programs and higher order rewriting systems; rewriting of type expressions in the type checker; rewriting of programs by refactoring tools, optimizers, code generators; execution of programs as a form of graph rewriting; template Haskell, introducing a rewriting-like macro language into the compilation process. This list of topics is non-exclusive. If you have a contribution that connects Haskell and rewriting, then submit. When in doubt, contact a member of the PC. Program committee: Alcino Cunha (U Minho) Jürgen Giesl (RWTH Aachen) Andy Gill (U of Kansas) Johan Jeuring (U Utrecht) Keisuke Nakano (UEC Tokyo) Kristoffer H Rose (IBM Watson) (co-chair) Christian Sternagel (JAIST) Janis Voigtländer (U Bonn) Johannes Waldmann (HTWK Leipzig) (co-chair) Dates: May 21: deadline for submissions May 28: notification of acceptance June 27: workshop Submission and Proceedings: Two categories of submissions are invited: Extended abstracts. Presenting original research, and also preliminary reports of work in progress. Will be included in the proceedings. Presentation-only papers. Describing work recently published or submitted. Will not be included in the proceedings. Papers should be at most 5 pages in length, and should use the easychair.cls style. Submission is handled through the EasyChair HART2013 page, https://www.easychair.org/conferences/?conf=hart2013 In line with the informal style of the workshop, the reviewing of submissions will be light. When accepting and scheduling presentations, preference will be given to original research. Proceedings will be made available electronically at the workshop. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CfP: Workshop Haskell and Rewriting Techniques HART 2013
Rewriting is the science of replacing equals by equals and thus a very powerful method for dealing with equations. There are strong connections between Haskell programming and rewriting. Therefore, we announce a new workshop, International Workshop on Haskell And Rewriting Techniques (HART 2013) http://www.imn.htwk-leipzig.de/HART2013/ to be held on June 27, in conjunction with RDP 2013, in Eindhoven. (RDP contains RTA, the main rewriting conference.) We plan a half day of discussions, in an informal setting, on how Haskell and rewriting techniques and theories can cross-fertilize each other. Topics of interest are, for example, equational reasoning and other rewriting techniques for program verification and analysis; lambda calculi and type systems for functional programs and higher order rewriting systems; rewriting of type expressions in the type checker; rewriting of programs by refactoring tools, optimizers, code generators; execution of programs as a form of graph rewriting; template Haskell, introducing a rewriting-like macro language into the compilation process. This list of topics is non-exclusive. If you have a contribution that connects Haskell and rewriting, then submit. When in doubt, contact a member of the PC. Program committee: Alcino Cunha (U Minho) Jürgen Giesl (RWTH Aachen) Andy Gill (U of Kansas) Johan Jeuring (U Utrecht) Keisuke Nakano (UEC Tokyo) Kristoffer H Rose (IBM Watson) (co-chair) Christian Sternagel (JAIST) Janis Voigtländer (U Bonn) Johannes Waldmann (HTWK Leipzig) (co-chair) Dates: May 6: deadline for submissions May 20: notification of acceptance June 27: workshop Submission and Proceedings: Two categories of submissions are invited: Extended abstracts. Presenting original research, and also preliminary reports of work in progress. Will be included in the proceedings. Presentation-only papers. Describing work recently published or submitted. Will not be included in the proceedings. Papers should be at most 5 pages in length, and should use the easychair.cls style. Submission is handled through the EasyChair HART2013 page, https://www.easychair.org/conferences/?conf=hart2013 In line with the informal style of the workshop, the reviewing of submissions will be light. When accepting and scheduling presentations, preference will be given to original research. Proceedings will be made available electronically at the workshop. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] 2nd CfP: Haskell in Leipzig (Germany) (Deadline: March 31, Workshop: June 21)
Haskell in Leipzig! Now in its 8th year! http://www.bioinf.uni-leipzig.de/conference-registration/13haskell/ Calling for papers, tutorials, performances! ... on Haskell in particular, but also functional programming in general, and its extension by other paradigms. We'd love to hear about news of the language, libraries, and tools; Haskell applications in art and industry; and teaching Haskell. Presentations should be given in German but we can switch to English if requested. Submission until: March 31 Notification: April 15 Workshop: June 21 Invited talk by Christian Höner zu Siederdissen: "ADPfusion: high-performance dynamic programming in Haskell" Program comittee: Ralf Dorn (Otto-Nagel-Gymnasium Berlin), Georg Martius (MPI Leipzig), Petra Hofstedt (BTU Cottbus), Andres Löh (Well-Typed LLP), Alf Richter (iba CG Leipzig), Uwe Schmidt (FH Wedel), Peter Stadler (Univ. Leipzig), Henning Thielemann (Univ. Halle), Janis Voigtländer (Univ. Bonn), Johannes Waldmann (HTWK Leipzig) signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CfP: (NEW!) Workshop Haskell and Rewriting Techniques HART 2013
Rewriting is the science of replacing equals by equals and thus a very powerful method for dealing with equations. There are strong connections between Haskell programming and rewriting. Therefore, we announce a new workshop, International Workshop on Haskell And Rewriting Techniques (HART 2013) http://www.imn.htwk-leipzig.de/HART2013/ to be held on June 27, in conjunction with RDP 2013, in Eindhoven. (RDP contains RTA, the main rewriting conference.) We plan a half day of discussions, in an informal setting, on how Haskell and rewriting techniques and theories can cross-fertilize each other. Topics of interest are, for example, equational reasoning and other rewriting techniques for program verification and analysis; lambda calculi and type systems for functional programs and higher order rewriting systems; rewriting of type expressions in the type checker; rewriting of programs by refactoring tools, optimizers, code generators; execution of programs as a form of graph rewriting; template Haskell, introducing a rewriting-like macro language into the compilation process. This list of topics is non-exclusive. If you have a contribution that connects Haskell and rewriting, then submit. When in doubt, contact a member of the PC. Program committee: Alcino Cunha (U Minho) Jürgen Giesl (RWTH Aachen) Andy Gill (U of Kansas) Johan Jeuring (U Utrecht) Keisuke Nakano (UEC Tokyo) Kristoffer H Rose (IBM Watson) (co-chair) Christian Sternagel (JAIST) Janis Voigtländer (U Bonn) Johannes Waldmann (HTWK Leipzig) (co-chair) Dates: May 6: deadline for submissions May 20: notification of acceptance June 27: workshop Submission and Proceedings: Two categories of submissions are invited: Extended abstracts. Presenting original research, and also preliminary reports of work in progress. Will be included in the proceedings. Presentation-only papers. Describing work recently published or submitted. Will not be included in the proceedings. Papers should be at most 5 pages in length, and should use the easychair.cls style. Submission is handled through the EasyChair HART2013 page, https://www.easychair.org/conferences/?conf=hart2013 In line with the informal style of the workshop, the reviewing of submissions will be light. When accepting and scheduling presentations, preference will be given to original research. Proceedings will be made available electronically at the workshop. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Haskell in Leipzig (Germany) : call for papers, tutorials, performances
Haskell in Leipzig! Now in its 8th year! http://www.bioinf.uni-leipzig.de/conference-registration/13haskell/ Calling for papers, tutorials, performances! ... on Haskell in particular, but also functional programming in general, and its extension by other paradigms. We'd love to hear about news of the language, libraries, and tools; Haskell applications in art and industry; and teaching Haskell. Presentations should be given in German but we can switch to English if requested. Submission until: March 31 Notification: April 15 Workshop: June 21 Invited talk by Christian Höner zu Siederdissen: "ADPfusion: high-performance dynamic programming in Haskell" Program comittee: Ralf Dorn (Otto-Nagel-Gymnasium Berlin), Georg Martius (MPI Leipzig), Petra Hofstedt (BTU Cottbus), Andres Löh (Well-Typed LLP), Alf Richter (iba CG Leipzig), Uwe Schmidt (FH Wedel), Peter Stadler (Univ. Leipzig), Henning Thielemann (Univ. Halle), Janis Voigtländer (Univ. Bonn), Johannes Waldmann (HTWK Leipzig) signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CfP: Conf. Rewriting Techniques and Applications RTA 2013 -- deadline February 1
RTA http://rta2013.few.vu.nl/cfp.html Deadline: February 1, Conference: June 24-26, Eindhoven NL Dear all, instead of copying the complete CfP, I'd like to specifically address the Haskell community: There are strong connections between (functional) programming and rewriting. For example, the execution of a program is a form of graph rewriting; the type checker rewrites type expressions; the code generator rewrites the program (for optimization). The conference on Rewriting Techniques and Applications is the major forum for the exchange of new ideas on all matters related to rewriting, covering the whole range from foundations to applications. And you should take the opportunity to contribute your ideas. Note: If you = Simon Peyton Jones, then you are the invited speaker. Else, follow the usual process of submitting a paper by February 1. Best regards, on behalf of the RTA programme committee, Johannes Waldmann. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Register now for: Haskell in Leipzig (Germany), June 4.
The schedule and registration for the "Haskell in Leipzig" meeting on June 4 are now on-line: http://www.iba-cg.de/hal5.html Keywords: Leksah, HXT, Hawk, Adga, lambda camp, sound synthesis. The workshop is presented by http://www.fit-leipzig.de/ , in co-operation with http://www.imn.htwk-leipzig.de/ , http://www.leipziger-medienstiftung.de/, http://www.iba-cg.de/ Best regards, Johannes Waldmann (for the Hal5 program committee) signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CFP: Haskell meeting in Leipzig/Germany, June 4
This is the fifth in our series of yearly local meetings. For the full announcement, see: http://www.iba-cg.de/hal5.html . If you want to give a tutorial, or a technical talk, email the programme committee (details on web page). We will also compile a list of "most wanted" topics for tutorials and talks. The primary language is German but we can switch to English if requested/agreed upon by audience and speaker. Best regards, Johannes Waldmann, HTWK Leipzig. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] CFP: Workshop on Termination (WST 2010, Edinburgh, July 14-15)
Dear all, the 11th Intl. Workshop on Termination welcomes contributions from the functional programming community. See the general call for papers: http://imada.sdu.dk/~petersk/WST2010/ and let me add a few words here. The typical functional (compiler) programmer needs - termination of programs - termination of program transformations (rules) - termination of program analysis (type checking/inference) So I'm sure the workshop topic is highly relevant, and we are looking for *your* contributions. The workshop provides a ground for cross-fertilisation of ideas from term rewriting and from the different programming language communities. We hope to attain the same friendly atmosphere as in past workshops, which enabled fruitful exchanges leading to joint research and subsequent publications. Also, we have an annual competition for automated termination provers, http://termination-portal.org/wiki/Termination_Competition and since 2007 it contains a Haskell category. http://termination-portal.org/wiki/Functional_Programming The problems there are taken directly from the Standard Prelude. The state of the art in automated Haskell termination is pretty much defined by the AProVE team (Aachen University), nicely summarized here: http://aprove.informatik.rwth-aachen.de/eval/Haskell/ Best regards, Johannes Waldmann. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Call for papers: Workshop on Termination (WST 2009)
Dear all, the 10th Intl. Workshop on Termination welcomes contributions from the functional programming community. See the general call for papers below, and let me add a few words here. The typical functional (compiler) programmer needs - termination of programs - termination of program transformations (rules) - termination of program analysis (type checking/inference) So I'm sure the workshop topic is highly relevant, and we are looking for *your* contributions. Also, we have an annual competition for automated termination provers, http://termination-portal.org/wiki/Termination_Competition and since 2007 it contains a Haskell category. The problems there are taken directly from the Standard Prelude. So if you have some kind of Haskell source code analyzer that knows something about termination (perhaps only internally), then you're welcome turn it into a Haskell termination prover and submit it to this competition. (Details will be discussed at the workshop.) Best regards, Johannes Waldmann. . Tenth International Workshop on Termination (WST 2009) Leipzig, Germany, June 3-5, 2009 http://www.imn.htwk-leipzig.de/wst09/ Termination is a fundamental topic in computer science. Classical undecidability results show that termination is difficult. On the other hand, programs are usually required to terminate. So methods are needed that prove termination and non-termination automatically for a wide range of programs. Termination proofs are essential not only for program verification, but also as components of program transformation systems. The topic is challenging both in theory (mathematical logic, proof theory) and practice (software development, formal methods), and many interesting ramifications are yet to be explored. The 10th International Workshop on Termination will delve into all aspects of termination of processes. It will continue the sequence of successful workshops held in St. Andrews (1993), La Bresse (1995), Ede (1997), Dagstuhl (1999), Utrecht (2001), Valencia (2003), Aachen (2004), Seattle (2006), and Paris (2007). It will attain the same friendly atmosphere as those past workshops. The intent is to bring together, in an informal setting, researchers interested in all aspects of termination, whether this interest be practical or theoretical, primary or derived. The workshop shall help exchange ideas from term rewriting and from the various programming language communities. Contributions from the imperative, constraint, functional, and logic programming communities, and papers investigating new applications of termination are particularly welcome. Program Committee: Frederic Blanqui, INRIA, FR and Tsinghua University, CN Byron Cook, Microsoft Corporation, US Alfons Geser, HTWK Leipzig, DE (chair) Michael Hanus,Universität Kiel, DE Janis Voigtlander,Technische Universität Dresden, DE Local organization: Johannes Waldmann, HTWK Leipzig, DE Important Dates: Paper submission 19 April 2009 Notification 26 April 2009 Final Paper Version 3 May 2009 Conference Venue: The workshop will be held in the city of Leipzig, at the conference center Mediencampus Villa Ida. Hosting institution: Hochschule fur Technik, Wirtschaft und Kultur Leipzig, in cooperation with Leipzig School of Media and Medienstiftung der Sparkasse Leipzig. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Compiler Construction course using Haskell?
Hello. I plan to give a course in compiler construction, using Haskell as the implementation language (not as source or target language). Something along these lines: 1. combinator parsers (Parsec), 2. simple interpreter (arithmetical expressions) 3. add algebraic data types, functions 4. type checker 5. code generator. Ideally, 2..5 would be using the very same tree traversal code and just change the monad for evaluation. Any comments appreciated. Have you given such a course? Taken? If I really decide to do it, then slides (in German) will be made available. Best regards, J.W. signature.asc Description: OpenPGP digital signature ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Error recovery for Haskell parsers?
Dear all I'd like to collect some ideas for error recovery in Haskell parsers. cf. http://leiffrenzel.de/eclipse/wiki/doku.php?id=ast , feel free to add information to that page. best regards, Johannes. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Local Haskell Meeting Leipzig Germany April 18th (update)
Dear all, updated information (schedule, venue) for "Haskell in Leipzig 3" (Friday, April 18th, that is, in two weeks time) is now available from http://www.iba-cg.de/hal3.html. Thrilling topics, beautiful venue - register now! Talks: Janis Voigtländer - Theorems for Free Bernd Holzmüller - Haskell tools for DSL compilation Lutz Donnerhacke - Haskell/SPARK libraries Jürgen Nicklisch-Franken - Making of Leksah Sponsors: ICS AG Stuttgart - http://www.ics-ag.de/ iba Consultig Gesellschaft Leipzig - http://iba-cg.de/ FIT Leipzig - http://www.fit-leipzig.de/ We'll also have the eclipsefp Hackathon but for that, registration is now *closed* (too many people - imagine that!) Still, you can contribute to this project anytime via http://leiffrenzel.de/eclipse/wiki/doku.php Best regards, Alf Richter and Johannes Waldmann. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Haskell OBDD package?
I'm looking for current Haskell implementations of (ordered) binary decision diagrams. (Yes, I tried google but this gives links from 2004 and earlier.) Thanks - Johannes Waldmann. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Local Haskell meeting + Hackathon, Leipzig, Germany, April 18-20
HaL 3, the third Haskell in Leipzig meeting, will take place on Friday, April 18, 2008 (late afternoon). Tentative program: - Janis Voigtlaender: Theorems for free - Jürgen Nicklisch-Franken: The Making of Leksah http://code.haskell.org/leksah The HaL meeting will be combined with a Hackathon weekend (19.-20.4.), where we want to work on the Haskell Eclipse plugin (refactoring, IDE integration, ...), see http://leiffrenzel.de/eclipse/wiki/doku.php For more details and registration, see http://iba-cg.de/hal3.html. Note: For HaL, we could use one more talk (30 min, in German or English) so if you have something, please tell us. Preference will be given to reports on Haskell in (business) applications. Alf Richter (iba Consulting) and Johannes Waldmann (HTWK Leipzig) ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Extensible records: Static duck typing
> Everyone wants to add extensible records to Haskell. well ... sure records are better than tuples ... but interfaces (uh, classes) are still better IMHO but anyway, is it possible to steal the design of C#'s anonymous types (classes)? if not, then why? (this might help to clarify what we want, or not). best regards, J.W. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: [Haskell-cafe] Why functional programming matters
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 > Actually, come to think of it, one great way to show off the language is > to show off the power of some of the libraries that have been written. > For example, show how easily a parser can be created w/ Parsec; [...] yes, Parsec is amazing. I use it in my e-Learning/testing system. It uses Parsec to read (student) input from a text entry area in a CGI application. http://www.imn.htwk-leipzig.de/~waldmann/autotool/ Parsec shows the benefits of embedding a DSL into Haskell: it gives you full combinatorial power: in types (e.g. lists of parser) and functions (e.g. from parser to parser), and all that with full safety. best regards, Johannes -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHmesc3ZnXZuOVyMIRAl2vAJ0VViyJe4tcxFiVpMR0suO50Bez5wCeIwi+ BK4GC4cqv5K25lT2k7B80zY= =jz0r -END PGP SIGNATURE- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANNOUNCE: HStringTemplate -- An Elegant, Functional, Nifty Templating Engine for Haskell
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Sterling Clover wrote: > Templates can be constructed that return strings, ShowSs, bytestrings, > or even pretty printer Docs that handle wrapping, indentation, and fill > elegantly. Even better, these templates are parsed and compiled only > once, after which point there isn't a syntax tree anymore, just a > function that operates on the environment of attributes that have been > passed to it. Ah! Finally! They invented Lambda Calculus! Perhaps after some more decades they invent Typed Lambda Calculus as well! (sorry, couldn't resist - Best regards, J.W.) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHiywR3ZnXZuOVyMIRAtGtAKCzfpu9PktmsatKHlM5I2CH4ysR8gCgibat eznCg3FyVJ4tsg/tOvRV8Qs= =4MoX -END PGP SIGNATURE- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Data.Tree.drawTree more spacefilling?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear all, I'm looking for a Data.Tree.drawTree that is a bit more "spacefilling" (put some subtrees side by side). Thanks - Johannes Waldmann, Leipzig. -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHfTr53ZnXZuOVyMIRAhqkAKCkXFRyqtR+6KaTnFf2msAGd1hf1QCeOFpB /WMg+//boG/vAos+yO0iHZo= =P13d -END PGP SIGNATURE- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Empty instance declaration
[EMAIL PROTECTED] wrote: > One thing that hasn't come up yet is that empty instance declarations are > the only decent option (that I know of) that we have in the absence of > real class aliases. I agree. I use this in my code in a number of places. It helps to write readable signatures. Best regards, Johannes Waldmann. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Nested guards?
Wolfgang Jeltsch wrote: > I cannot resist citing Henning Thielemann [...] Amen to that. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: Trying to install binary-0.4
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Udo Stenzel wrote: [an entertaining report on cabal/ghc problems] > => module "Data.ByteString.Base" not found I also got stuck there when trying to build zlib-0.3 (prerequisite for cabal-install-0.3.0) (with ghc-6.8.0.20070918) I don't even know whether cabal-install is what I want. It downloads a source package from hackage, builds and installs? Best regards, Johannes Waldmann. -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.4-svn0 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHGGiV3ZnXZuOVyMIRAoopAJ92RIOHVMX3LlTO2vGu5UTPCOAXkwCglcaf 3gSUPSneA27Mk0ytNiP9K/4= =H3zX -END PGP SIGNATURE- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: [Haskell-cafe] PROPOSAL: Rename haskell@ to haskell-announce@
Forgive me, but I would much prefer a newsgroup to a mailing list. True, I could unsubscribe now and just browse the mailman archives - but for posting, I'd have to temporarily re-subscribe, which is awkward. (Indeed that's the only reason I'm not doing it.) We already have comp.lang.haskell. - Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Haskell on Beowulf?
What tool/compiler support is there for compiling Haskell code to run on a Beowulf cluster? Any pointers appreciated. -- Johannes Waldmann, Leipzig, Germany. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Haskell Meeting in Leipzig, Germany, July 10th
The second HAL (Haskell in Leipzig) meeting: Tuesday, July 10th. Including the release party for the Cohatoe project (= contributing Haskell to Eclipse), presented by author Leif Frenzel. More info, registration: http://www.iba-cg.de/haskell.html Looking forward to seeing you (again), Alf Richter, iba consulting; and Johannes Waldmann, HTWK Leipzig. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: refactoring, catamorphism, termination of programs
Dear Stefan, thanks for your comment. > E.g. the Coq papers define its elimination constructs either as > a catamorphism, or as a combination of case&fix, where the recursive calls > are appropriately restricted to pass subterms as arguments. if we replace the "subterm" ordering by some other well-founded ordering on terms, and let a tool look for this ordering, then we get the "classical" approach (that is used for term rewriting systems). my point is that most (Haskell) programs don't require this because they are (or should be) just primitive recursive functions (catamorphisms) over data structures, and in fact they should be presented as such (explicit recursion should be replaced by the catamorphism), and I want a tool to do that replacement. Sure, this will not solve all Haskell termination problems. I just want to see how many are left (e.g. from the functions in the Prelude, or in my programs). If you want to contribute further to the discussion, then please do so via http://groups.google.com/group/fp-termination (I don't want to clutter the haskell mailing list, but I want to have the discussion in some public place.) Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] refactoring, catamorphism, termination of programs
Dear all, I'm looking for a tool that implements the source code transformation "replace recursion by catamorphism" (fold etc.). My application is that if the transformation succeeds, it implies that the program terminates. (roughly) I don't want to make a big research project out of this, rather I think of quickly putting together a prototype that proves the concept. I figure it could be distilled from some existing refactoring suite, or be manufactured from existing building blocks. E.g. Language.Haskell.* from the ghc libs, and perhaps "Typing Haskell in Haskell"? http://citeseer.ist.psu.edu/424440.html Any hints appreciated. Of course, if you already have some termination prover for Haskell programs, using any method whatsoever, then you're invited to take part in the "FP" category of the upcoming Termination Competition, see http://www.lri.fr/~marche/termination-competition/2007/ (Also, I'd welcome your comments on the proposed form and semantics of the FP category.) For discussion, please do not use this list but http://groups.google.de/group/fp-termination Best regards, Johannes Waldmann. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: Newbie: what are the advantages of Haskell?
> I.e. you can teach Java without teaching generics or anonymous inner classes. but you shouldn't - if you can teach the type-correct use of arrays (it's done for decades), then you can teach generic collections (at least their proper usage), and what's the problem with the anonymous class in x.addActionListener(new ActionListener(){ void actionPerformed(..){..}}); back to the original question (see subject): one advantage that gets easily overlooked is lazy evaluation, leading to better modularization, because you can decouple object (stream) generation from transformation from consumption, and still be space efficient. with eager evaluation this would require jumping through many hoops, destroying the logical structure of the program. and once you're lazy, then it's mandatory to be pure. Cf. one of the classical (1984!) answers to the "advantages" question: John Hughes: why functional programming matters, http://www.math.chalmers.se/~rjmh/Papers/whyfp.html Best regards, J.W. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] help -- need a random number
import System.IO.Unsafe (unsafePerformIO,unsafeInterleaveIO) Whoa! I'd be very cautious recommending these for newbies ... ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] help -- need a random number
I need some random numbers. in the IO Monad, hiding the use of a generator do x <- randomRIO (0, 1 :: Double) ; print x you can also make the state explicit: do g0 <- getStdGen ; let { ( x, g1 ) = randomR ( 0, 1::Double) g0 } ; print x a RandomGen is actually the state object for the generator, much like http://java.sun.com/javase/6/docs/api/java/util/Random.html best regards, J.W. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Newbie: what are the advantages of Haskell?
[EMAIL PROTECTED] wrote: [...] semi-functional programming languages such as Perl [...] now this is an interesting view ... ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] GHC
> [1 of 1] Compiling Main ( hase.hs, hase.o ) > Linking /home/helmut/hase/src/hase ... > /usr/lib/ghc-6.6/libHSrts.a(Storage.o): In function `initStorage': > Storage.c:(.text+0xe2c): undefined reference to `__gmp_set_memory_functions' this is strange since ghc itself has been compiled by ghc, and your installations seems to be able to run ghc itself. from where did you install? (binary rpm?) find out where the actual ghc executable is: cat $(which ghc) something like GHC_BIN=/usr/local/lib/ghc-6.6/ghc-6.6 and then look at the output of ldd /usr/local/lib/ghc-6.6/ghc-6.6 this should tell you where gmp.so lives. then you try to find out why the linker does not find it. best regards, J. W. ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Num is such a fat and greedy class
>> class Subtraction a b | a -> b where >> (-) :: a -> a -> b > > If you split them up like this, things like quadRoots take an > unwieldly type signature: [...] ultimately this leads to a style of programming where you have a class Has_f for each function symbol f. then the signature of a function contains all the (wrapper class) names of all the functions it intends to call. This shows that type classes are "just" a means for expressing implicit parameters to functions (the parameters are the class methods, and the (invisible) dictionary transports them). Their usability still is limited because all (data and) class and instance declarations are global. Is there a fundamental (design or implementation) reason for this? I really sometimes would want to write let { instance Show Foo where ... } in show ... or let data Bar = ... in ... Compare Java where you can have nested classes and interfaces. Where of course part of their motivation is that Java lacks proper (and anonymous) functions. Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] (last) call for participation: HAL next Tuesday
Dear all, this is a reminder for the Haskell meeting to be held in Leipzig, Germany, Tuesday next week (December 5th) http://www.iba-cg.de/haskell.html If you want to come, register now. As we have a number of non-local attendees already, we might append a "functional breakfast" the next morning. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANNOUNCE: Visual Haskell prerelease 0.2
> http://www.haskell.org/visualhaskell sounds great - but can I use this without buying Visual Studio first, i. e. does it work with some free beta version or similar? and, does it then work under wine :-) seriously, how hard would it be to adapt VH to Eclipse? the interfaces (for syntax highlighting, typechecking etc.) should be similar - in theory. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] I18N, external strings
What methods and tools are there for i18n of Haskell programs? (I.e. I want output in several languages, with the language configurable at runtime, and I want to add languages without recompilation.) a typical source text (for my application) is here http://141.57.11.163/cgi-bin/cvsweb/tool/src/Graph/Circle/Plain.hs?rev=1.2 it contains (German) text strings all over the place. In Java/Eclipse, I would "Source -> Externalize Strings" and this replaces each string by something like Messages.getString("Foobar.0") where Messages is a global variable (constructed at program start from reading a properties file) In Haskell, I see at least two problems: a) reading the file is in IO b) there are no "global variables". implicit parameters perhaps? c) when I'm trying to be clever, I use "deriving Show/Read" or similar. then i18n should rename the constructors/accessors? I rather not. http://141.57.11.163/cgi-bin/cvsweb/tool/src/Grammatik/Type.hs.drift?rev=1.6 Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Local Haskell meeting in Leipzig/Germany 5 December
We're planning a local Haskell meeting on December 5th in Leipzig, Germany. The meeting will be hosted by IBA Consulting. It will be quite informal, with some very short talks (most probably in German). Interessenten sind herzlich eingeladen. Details and (free) registration: http://iba-cg.de/haskell.html -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] cabal/haddock
Hello. What's the current state of Haddock support in Cabal? I checked that "runhaskell Setup.hs haddock" works fine, but how can I reference the documentation of (cabalized) package Y from the docs of package X? - Last I asked this, the answer was "write your hooks in Setup.hs" but I was hoping that meanwhile I could just put the info in the .cabal file. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANNOUNCE: Haskell XML Toolbox Version 6.1
Is there a library/tutorial that supports/explains providing web services (SOAP transport, WSDL description)? I know (and use) haxr (XML-RPC) but it seems that SOAP is the accepted standard in Java circles nowadays. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] haxr troubles - solved
Björn has just made a new release http://www.haskell.org/haxr/download/haxr-20060626.tar.gz that solves the problems I mentioned. Thanks! -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re: haxr (XML RPC server) problems
The readString function of haxr-20060418/Network/XmlRpc/Internals.hs does not rewrite as space. Should it? I have at least one Java XML RPC client that likes to encode spaces that way. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] haxr (XML RPC server) problems with C# client
Hello. I am trying to access an haxr (XML RPC) server from a C# client, see http://www.imn.htwk-leipzig.de/~waldmann/edu/ss06/oo/folien/oo/node153.html and it does not work: on the client side, I get Unhandled Exception: CookComputing.XmlRpc.XmlRpcFaultException: Server returned a fault exception. in <0x00274> CookComputing.XmlRpc.XmlRpcSerializer:DeserializeResponse (System.Xml.XmlDocument xdoc,System.Type returnType) How do I find out more (e. g. the server's actual response)? The same server works with a Java client. Is there a way to have a standalone haxr server, i. e. a process listening on a port, without the detour along the web server/cgi mechanism? (cf. the Java variant) Thanks, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] simplex method?
Dear all, I could use a simple implementation of the simplex method for linear programming. I found this: http://haskelldsp.sourceforge.net/doc/Matrix.Simplex.html but I'm not exactly sure how to use it. In the source http://haskelldsp.sourceforge.net/Matrix/Simplex.hs there's a function "solution", does it really give me a solution vector? Thanks, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] timing/timeout (how to express that in Haskell)
Arjen van Weelden wrote: > Personally, I'm often surprised by the laziness introduced by Maybe. Yes. That's why I chose the return type Boolean in my original post, and I included the remark on "Just x with x in whnf". Mirko used a list, where whnf is not enough. PS: I am still curious: does threadDelay use the wall clock or the per-process clock (CPU time)? And regardless of the answer - how could one obtain the opposite behaviour? (I don't find this discussed in the visible docs. Or am I missing something?) Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] timing/timeout (how to express that in Haskell)
Donald Bruce Stewart wrote: > forkIO + killThread && threadDelay OK that's nice and solves my problem. Thanks! Is the delay measured on the wall clock or on the user (per-process) clock? -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] timing/timeout (how to express that in Haskell)
What is the idiomatic way to say in (ghc) Haskell: "run this computation for at most x seconds" (e. g. it returns Boolean; imagine a primality test) so I want something :: Int -> a -> Maybe a with the guarantee that the result is Just x with x in whnf, or Nothing. I guess one answer is "that's not Haskell because that's not a function". Sure, but I think I need it anyways, so I would accept some IO .. in the types. Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Haskell as a disruptive technology?
>> * Analysing and guaranteeing performance characteristics (time, >> memory) is something we still can't do well with Haskell. Seconded. I think all three of: specification, prediction and post-morten analysis of resource consumption of Haskell programs are largely uncharted territory. I don't see a widely accepted formal base (a resource calculus) and that's probably why there is no tool support (yes, I know about ghc -prof -auto-all). Ultimately, there should be some refined type system that allows to express and prove resource consumption guarantees. best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Haskell as a disruptive technology?
Paul Johnson wrote: > Is there a market that is poorly served by the incumbent languages for > which Haskell would be an absolute godsend? yes - teaching principles of programming (and languages). E. g. I have my students (2nd year) learn (some) Haskell first, so they will hopefully understand better what is a (polymorphic) type and what is behind those OO-design patterns (Composite => algebraic data type, Visitor => map/fold, Template Method => higher order function etc.) But the comparison to e. g. Java also shows quite clearly that Haskell is lacking some features (ranging from essential to convenient) in the area of software engineering (module system, record system, annotations, etc., see some entries on Haskell-prime) And I don't hide that opinion from the students. You may say that my teaching is "disruptive", but then, there's no "market" since the students have no choice ... But most of them accept the challenge. (I'm afraid they'd accept an advanced Perl(*) hacking course as well.) (*) - replace with name of any untyped interpreted scripting language. Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] -fno-monomorphism-restriction makes type-inference ambiguous?
Implicit parameters are *evil*. They seem to simplify programs but they make reasoning about them much harder. To an extent, they can be simulated with type classes, because dictionaries are also implicit (you don't see them in the code but you see them in the type declaration - same as for implicit parameters). Of course reasoning about programs with typeclasses is hard as well, but at least at the moment all instances (dictionaries) are global. On the other hand, this also limits the usefulness of type classes. In all, it's a design choice. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] problems with Haskell 98's record system
Iavor Diatchki wrote: >> remove export lists, introduce public/private modifiers > And it nicely deals with re-exporting imported entities: public > imports get reexported, private ones don't. note though that the public/private thing in Java also refers to the "package" concept, which is missing from Haskell (this is worked around at the language level by re-exporting modules, and at the tool level by Cabal - both kludgy, methinks). -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] problems with Haskell 98's record system
Cale Gibbard wrote: > ... unless you export everything, you are forced to list all exports > explicitly, so there's no way to tell it just the few things you're > hiding (though that should not be a difficult extension). Alternative suggestion: remove export lists, introduce public/private modifiers http://www.haskell.org//pipermail/haskell-prime/2006-January/000230.html -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re: [Template-haskell] new TH tutorial (request for comments)
Dear Bulat and Johan, thanks for your comments and pointers. Johan Jeuring wrote: > This won't be of much help right now, but Ralf Hinze, Andres Loh and I > are preparing lecture notes on Comparing approaches to generic > programming for the Spring School on Datatype-Generic Programming 2006.. Sounds like that will be the paper that I want. Meanwhile (and independently), I wrote down some notes: http://dfa.imn.htwk-leipzig.de/~waldmann/draft/meta-haskell/ I'd be glad if this would turn into something useful, so please feel free to comment, and to use it (and I don't care too much about the venue of publication, so it can be wiki-ized or whatever). Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Modelling languages for FP (like UML for OO)
Mads Lindstrøm wrote: > In object-oriented programming, UML is used to model programs. In > functional programming (especially Haskell) we use ??? Nice question. The problem with UML class diagrams is that they are only really suited to "classical" OO (composition and inheritance) and thus are missing some important features: a) the UML notation for generics (type parameters) is somewhat ad-hoc, e. g. there is no good visible disctinction between a template and its instantiation. b) UML supports interfaces, but (speaking Haskell) they are all unary predicates (a type implements an interface) and there is no notation for multi parameter type classes (would need a hypergraph instead of a graph :-) -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Re: Records
Ketil Malde wrote: >> Perhaps data Foo = Foo { foo :: Int, bar :: Int ; bar = 2 * foo self } >> with a reserved word "self" is better. - Are there semantic problems? > > Can't you solve this by writing a fiunction to construct Foo with the > desired properties? Sure but by the same argument I wouldn't need records at all because I could use tuples :-) I'd say it makes the intention of the programmer more explicit, and this is what pragmatics of programming languages is all about, isn't it ... Also, for updates ( like x { foo = 3 } ) I'd expect that a new record is built and the initializer is called again - this would be inconvenient to write with functions because of the unwrapping and wrapping (you would need to name all components even if they don't change so you don't want to mention them). I think it would be even more convenient if it were possible to have initializers in separate modules (a la orphan instances) because often I have one module that just defines the data type, and then several modules that define operations. I would need to know all the default-initialized fields already when writing the type definition, which is wrong design (it forces me to make decisions too early and write them down in the wrong place). I realize that my above idea looks something like introducing objects through the back door. Because one might say that I want something like a "Foo" with an additional component (bar) that is ignored by those who don't know them. This is indeed a severe criticism - normally I tend to avoid implementation inheritance and now it looks like I'm advocating it... best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Data.Generics question
Dear all, in Data.Generics.Text http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/libraries/base/Data/Generics/Text.hs?rev=1.10 I find this nice example gshow = ( \t -> "(" ++ showConstr (toConstr t) ++ concat (gmapQ ((++) " " . gshow) t) ++ ")" ) `extQ` (show :: String -> String) but I couldn't figure out how to use this to declare a useful show instance. I would need something like `extQ` (show :: Show a => a -> String ) i. e. use Show instance if available, or `extQ` ( lshow :: [ a ] -> String ) i. e. use another function if argument type is a list type BTW: I guess the above is related to http://homepages.cwi.nl/~ralf/syb3/ Do the current (6.4) ghc compiler/libraries correspond to what's in that paper? -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: Records (was Re: [Haskell] Improvements to GHC)
> It actually sounds a lot like pattern guards, since you're suggesting this > sugar could be applied to any sort of object? So your desugarer would > allow a function like > > islong :: [a] -> Bool > islong {length = l} = l > 10 this looks like a hack that only works for one-argument functions, and its only purpose seems to hide the argument. I don't like the (local) looks of "length = 1" anyway. Compare to "length [] = 0". You'd think the first one is a typing error until you spot the surrounding "{ .. }" While we're at it, I'd like to mention a feature that I'd love to have in a record system (for a long time): defaults, resp. initializer functions. E. g. data Foo = Foo { foo :: Int, bar :: Int ; bar x = 2 * foo x } Something like that (imagine that (*) is some expensive computation). Note that default declarations in classes are vaguely similar. Again, the concrete syntax problem is whether to hide the argument. Perhaps data Foo = Foo { foo :: Int, bar :: Int ; bar = 2 * foo self } with a reserved word "self" is better. - Are there semantic problems? It might even be desirable to hide the "computed" component, i. e. Foo { foo = 5, bar = 7 } could be forbidden. And still better: if we could say later (i. e. outside the definition of Foo) that the values of bar should be "memorized" in the Foo records. Of course this might be hard for separate compilation (if type definition and memorized functions are in different modules. Again, this is vaguely similar to orphan instances.) Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: Records (was Re: [Haskell] Improvements to GHC)
On records in Haskell - can we start by formulating requirements (design goals). What do we want from a record system, and what are non-goals. Some of the proposals here sound like records should be more like objects (with some kind of inheritance). Do we really want this? We already have inheritance (for interfaces). Isn't that enough? My main objection is that concrete data types (e. g. records) should not be exposed by a module anyway, and should definitely not be a base for derivations (Compare the OO design pattern literature). Still if they are exposed (or while we're inside a module), what makes the current records quite impractical is the namespace issue (for component names). Sure, one thing would be to invent some ad-hoc solution (automatic qualification by type name or something) but another possibility is to allow ad-hoc polymorphisms generally in the language. Just my 2 cent (and none of them new, I'm afraid) -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] really undecidable instances?
Simon Peyton-Jones wrote: It's all very delicate. I believe, though I am not certain, that in the absence of functional dependencies, removing at least one type constructor might be an example of a rule that is sufficient to ensure termination. There are lots of such rules. Alas none known to me capture all cases. Of course they couldn't - because of undecidability of termination (of term rewriting, or Prolog-like programs). But then, there are a lot of (nontrivially) decidable subcases, and consequently there are quite a few automated methods for termination proofs, see http://www.lri.fr/%7Emarche/termination-competition/2005/ Would it be interesting to "beef up" the termination analysis in ghc a bit, using some of those methods? But then, the current solution is just use "-fundecidable.." and the see if the type checker (apparently) loops. This might still be more efficient than invoking a larger machinery that would prove (non)termination because after the proof you'd still have to invest the time into doing the rewrite sequence. Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] cabal/haddock
What's the current story on cabal and haddock? I need to run my sources through ghc -cpp before giving them to haddock. Does cabal support this (e. g. by directing the ghc -cpp output to dist/src )? Thanks, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] ANNOUNCE: fps -- fast packed strings
>>1) add psniceq/pscmp to export list (with better names, smtg like >>eqPS/cmpPS) is it possible to avoid module/type identifiers ("ps") hardwired into the names? We have hierarchical namespaces for that (PS.eq, PS.cmp etc.) This has many advantages, e. g. you could then do "import PackedString.Fast as PS" - otherwise the names were wrong (they should be eqFPS etc.) Also, why the abbreviations ("cmp"). See discussion in ttp://c2.com/cgi/wiki?MeaningfulName (and a lot of other places and books). Sure, a lot of the problems that the (OO) refactoring hype is trying to solve do not arise in the first place if we do functional programming, but quite some are independent of the paradigm (e. g. those on naming) - so we should consider carefully the problem indicators and solutions that have been suggested. Just my opinion (not specific to the packed string library). -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] FP in the (German) CS curriculum
Hello. My institution is currently revising the curriculum for Bachelors and Masters in Computer Science. One point of interest is the role of programming, and especially that of the functional paradigm. I'd like to compare our plans to other existing curricula. The main critique raised implicitely or explicitely by some of my colleagues here is nicely summarized in http://www.galois.com/cufp/ : "industry folks complain that there aren't enough FP folks being produced by schools, and educators complain that students don't see any point in studying FP if there are no jobs to be had." So if you are teaching (or studying) at a German Fachhochschule (technical university, sort of), I'd like to know your opinion (and your institution's opinion). (Please reply to me, not to this list. Is there a better place for this discussion?) Vielen Dank (thanks)! -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] writeFile for a looong string
Dear all, I am writing a long string (several MByte) to a file, with writeFile fname ( render d ) where d :: Text.PrettyPrint.HughesPJ.Doc I wonder what happens internally (when compiled with ghc -O, if that matters) Will the string be in memory completely before it is actually written? My d is in fact vcat xs, for a list xs that is generated item by item. Is there a way to get more efficient behaviour without too much rewriting the program? -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Haskell XML RPC
Dear all, I am looking at the Haskell XML RPC library http://www.haskell.org/haxr/ First of all, this is a very nice thing to have, and installation is really easy, using Cabal and the packaged source archives. Some questions though: *) Of course I want to dervie XmlRpcType instances automatically. The examples suggest $(asXmlRpcStruct (reifyDecl Person)) but I cannot get this to compile (with ghc-6.4). It seems reifyDecl is gone, and reify has different type. I worked out this: helper name = asXmlRpcStruct ( ( reify name ) >>= ( \ (TyConI dec) -> return dec )) $(helper ''Person) Does xmlrpc.cabal should contain a build-dependency on template-haskell? (Otherwise I get linker errors.) *) what is the recommended representation that should be created for data T = A { .. } | B { .. } | ... i. e. discriminated unions? Certainly some solution can be coded, but ... *) what about the "Java side of things" - perhaps I want (need) to interface to a Java Client. If it's Haskell-to-Haskell, then both server and client of course can derive their XmlRpcType instances from identical data declaraions and everything is fine. For intergration with a different language, what do you recommend: Start from a Haskell data declaration, and derive a Java representation, directly or indirectly? Or start from some language independent data declaration, as it happens (I assume) for JAXB? Best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Beyond ASCII only editors for Haskell
to only ASCII characters. For example, I would not write 'sqrt 2' but I would write a square root symbol with 2 underneath. Likewise, I would not write '2 ^ 5', but I would write a 2 with a 5 raised upwards to the right of the 2. ... Remember Paul Halmos' advice (from "I Want To Be A Mathematician"): if you use (or dare to invent) "tricky" notation, imagine you had to read the formula to someone over the phone. Then you need to *name* and *pronounce* things, not just *write* them. This also enforces a natural linear order on the representation, much like the sequence of characters in a file. On the other hand, most editors will represent it two-dimensionally, but it's not clear whether hard-wiring 2D into a language definition solves more problems than it creates. (So the Haskell designers were cautious and allowed to bypass the layout convention.) With a few examples (sin, cos, log, ...), Mathematics has gone a long way to avoid multi-letter identifiers. Since there are only a few latin letters, it resorts to graphical (examples above) and calli-graphical resolutions (other fonts, boldface, italics, superscripts, subscripts etc. I think the \sqrt sign is in fact an "r" = first letter of "radix" = root) From an "engineering" standpoint (readability, maintenance), this sometimes is questionable. See any software engineering textbook, section "choose sensible names for identifiers". By sticking to plain ASCII, we enforce longer (and hopefully more meaningful) names :-) BTW, the Haskell standard itself does feature some unnecessary cleverness: abridged names like Bool, fst, snd just don't feel right. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] wanted: "source_location_of" function
Dear all, I have a Haskell program with a textual interface (Textareas in CGI, actually) where the user has to type/edit representations of Haskell data in several places (handled with Read/Show, for the moment). Now for each such input field, I want to add a link to the haddockumentation or source code of the corresponding data declaration, and preferrably without changing (much) of the program it is large, and the interface is generic: the actual textarea does not know anything about the type of its contents, other than being an instance of Read and Show. What would be a good way to obtain this information automatically? Probably I want a class with a method giving sth. like source_location_of ( _ :: Data.Map k v ) = [ "Data", "Map" ] where instances are derived automatically. Could be done with DrIFT perhaps ... (But I think I need the package name for the module as well.) Any ideas or pointers would be welcome. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Are there libraries for finite words and computable functions?
With "computable functions" I mean recursive functions, Turing machines, register machines or something like that. my project "autotool" contains various models of computation. the program in fact can automatically grade student exercises that use these models. http://www.imn.htwk-leipzig.de/~waldmann/autotool.html http://141.57.11.163/auto/ -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] haddock -cpp ? Cabal support for haddock ?
What is the preferred way to generate haddockumentation from code that must be preprocessed (ghc -cpp)? Would Cabal support this? I'd certainly welcome Cabal support for other haddock features as well (--source, --read-interface). I am not sure where to put all these arguments in the .cabal file. And ... could we have something in haddock like JavaDoc's "@since" tag? -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] the wonders of lazy IO
Thanks for the comments. Indeed I knew the solution - once I isolated the problem. Note that ghc(i) behaves differently when running main2 below (it says "file is locked"). (hugs does not complain.) import System main1 = do system "echo A > foo" a <- readFile "foo" system "echo B > foo" b <- readFile "foo" print (a == b) main2 = do writeFile "foo" "A" a <- readFile "foo" writeFile "foo" "B" b <- readFile "foo" print (a == b) -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
[Haskell] the wonders of lazy IO
it took me quite a while to isolate the following. what does this program print? certainly "A" (written by the first system call) is different from "B"? import System main = do system "echo A > foo" a <- readFile "foo" system "echo B > foo" b <- readFile "foo" print (a == b) best regards, -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- http://www.imn.htwk-leipzig.de/~waldmann/ --- ___ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: Network.CGI: ?
Yes, it is allowed. Looks like the library can't parse multipart/form-data encoded content. If it's indeed the case, you lost. :-( I hope not. I'm prepared to do a bit of coding. (Just a bit :-) The CGI program should "simply" read stdin (?) and decode the parts? Possibly some of the functionality (parsing boundaries etc.) is already contained in some HTTP library? -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Network.CGI: ?
I am using Network.CGI (with ghc-6.2) How can I use an element? I guess I know how to produce one: Text.Html.input ! [ Text.Html.nametag , Text.Html.thetype "file" , Text.Html.intAttr "maxlength" 1 , Text.Html.strAttr "accept""text/*" ] But to get to the file contents, it seems I should add Text.Html.strAttr "enctype" "multipart/form-data" to the element, where I already have Text.Html.method "POST" but then I can't ready any values out of the environment that is provided by Network.CGI.wrapper. The environment then contains , ( "QUERY_STRING", "" ), ( "CONTENT_LENGTH", "1590" ) , ( "CONTENT_TYPE" , "multipart/form-data; boundary=---1409895718904..." ) Am I doing something wrong, HTML-wise (is it allowed to mix TYPE="file" input with other input elements in one FORM?) or is this a problem with the library? Any help appreciated. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] Exceptions
in the following example, the handler won't catch the exception because of lazy evaluation. therefore, it's a different story than with exceptions in ML, Python, whatever strict language. main = do xs <- return [ 1, 2, error "throw" ] `catch` \ any -> do putStrLn "caught" return [ 4, 5, 6 ] print xs -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Better Exception Handling
The other annoying thing is forcing it to run in the IO monad. necessarily so, since Haskell has non-strict semantics so it's not so clear when an exception is actually raised (you might have left the block that textually contained the offending expression , and the exception handler, a long time ago) -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Haskell implementation of infixr and infixl/priorities
Have you looked at Parsec.buildExpressionParser: http://www.cs.uu.nl/~daan/download/parsec/parsec.html (see section "Expressions"). This allows very concise programs, and you don't need to install any extra library. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] readList oddity
Because of that, calling error in one of your read functions seems a bad idea. In fact, returning an empty list is the right way to return an error in the prelude's parsing framework. If you want something different (e.g., because you want better error messages) you should not be using the prelude's read function. indeed I use Parsec in this project, because of better error reporting, and because it evaluates more eager. But in this case an external library (Wash) was expecting that I provide a Read instance. I now think I should have overridden the default definition of readList. http://141.57.11.163/cgi-bin/cvsweb/lib/Autolib/Reader/Link.hs?rev=1.2 -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] readList oddity
recently I was surprised by readList's behaviour (I'm no implying it is wrong). Look at this: data R = R deriving Show instance Read R where readsPrec p cs = do ( x, cs' ) <- lex cs case x of "R" -> return (R, cs') _ -> error "no R" that is, we have a "very eager" parser: if it does not accept the token, it will raise an exception. now - which of the following will work? check0 :: [R] check0 = read "[ ]" check1 :: [R] check1 = read "[ R ]" check2 :: [R] check2 = read "[ R, R ]" turns out that check1 and check2 work, but check0 will not (I thought it would). The implementation (in the Prelude) seems to think that "]" (in check0) could possibly be the beginning of a list element. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] is $ a no-op?
In a *lot* of places in my programs, I am using notation f $ g $ h x in favour of f (g (h x)) (that's the '$' as defined in the Prelude: right-associating infix application operator) as it avoids parentheses, and makes the code more manageable (you can write "(upward) pipes" with one "$ f" per line, etc) I liked to think of it as just a syntactical convention (for years ...) but is it really at no cost? It does introduce extra function calls, that is, extra closures etc.? Can these be removed by ghc's optimizer? Or am I totally wrong here ... Actually, looking at the Prelude (now), there is '$!' as well - is that supposed to answer my question? -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Program maintenance tools
- detection of unnecessary arguments for functions; - detection of unnecesary imports of modules; http://www.haskell.org/ghc/docs/latest/html/users_guide/options-sanity.html ghc -W: Provides the standard warnings plus -fwarn-incomplete-patterns, -fwarn-unused-matches, -fwarn-unused-imports, -fwarn-misc, and -fwarn-unused-binds. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] looking for reference to wadler's (?) law of language design
this is slightly off topic - I am preparing for a lecture on domain specific languages and I try to track down the source and original version of (what I recall as) Wadler's "law" of language design, "the energy spent in designing a programming language goes into, in increasing order of effort: semantics, syntax, syntax of comments". -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Space behaviour & hyperseq
Colin, Arjan, one further remark on hyperseq x y = if x==x then y else error "this is very unlikely" ... the result of an application 'normal x' is always true ... I understand how this works, but do we agree that it looks outright ugly? We mean one thing (strictness) but we write something quite different (an "obviously useless" computation of the constant True). Can you explain this to students? Would you be proud of it? Reminds me of hacks like { int x = 42; String s = x + ""; } -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Space behaviour & hyperseq
1) Is there a more efficient definition of hyperseq that does not traverse the data structure twice? The "show" function traverses the structure once but I found it to be much slower. persumably because it produces its output with (++), or with (.) and building up lots of closures (?) something like class Size s where size :: s -> Int would help. (or a class Hash ... - both are nice to have anyway in a program) (and automatic instance derivations for them would be nice as well...) 2) In this application the uses of lazy evaluation are rare and easily eliminated (zip xs [1..] and so on); is there some hidden GHC option that evaluates everything strictly? I realise that this would invalidate optimisations relying on certain laws but I just wonder how difficult this would be. Somebody must have given this a thought at one point. It would also be interesting to find out what exactly the compiler is missing when translating your program. Ideally, it should be able to "see" that everything is strict. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Monadic Loops
while test body = do (cond,res) <- body if (test cond) then do rs <- while test body return (res:rs) else return [res] do you need the monad here? what monad is it? the problem could to be that the "return $ res: rs" can happen only after it is certain that "while test body" succeeds. so you won't even see the very first cons cell before the last one is evaluated. could you produce a (lazy) list of results instead? the garbage collector might be able to collect the list cells that are no longer needed possibly, a lazy state monad would help (if the computation of "while test body" cannot fail) Is there a better way to implement (possibly infinite) loops in Haskell? generally, don't program your own recursions - use pre-defined combinators instead. (I like to think of this as a "higher analogon" of "don't use goto - use block structures" from imperative programming) if you need monads, have a look at sequence, sequence_, mapM, mapM_ http://www.haskell.org/onlinereport/monad.html if you can do with lists, then use iterate, fold etc. http://www.haskell.org/onlinereport/list.html best regards, -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Annoying naming clashes
John Meacham wrote: 1. define the data structures you think you will need or 2. define the class/interface your data structures will have if you want to take the "prototyping" route, then indeed do 1. first and then 2., but of course first 2. then 1. gives better code right from the start. I mean, you don't write a sort function for strings, another for doubles etc. only to discover later that you should use the Ord interface (erm, class). OTOH, if you do the complete sequence 1+2+1 then you can call it "refactoring" in order to be buzzword compliant. however an experienced haskell programmer might realize the data structure is not needed and just write as has been said already, the programmer should indeed *use* such structures, and it's the job of the *compiler* to figure out where and how they could be removed. as Eric Raymond puts it, "Smart data structures and dumb code works a lot better than the other way around." http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s06.html best regards, -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] haskell for XMI processing?
I wonder if Haskell (HXmlToolbox) has been used for processing XMI data. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
[Haskell] haddock/ghc feature request
I have a bunch of (polymorphic) function declarations like foo :: C a => A a -- ^ comment -> B a -- ^ comment foo = ... and haddock does a very fine job on them. but then I wanted (needed) to specialize them, and to avoid duplicating information, I wrote type Foo a = A a -- ^ comment -> B a -- ^ comment foo :: C a => Foo a {-# SPECIALIZE foo :: Foo Int #-} problem is, haddock does not want to parse the comments in the type Foo definition. (I think in case of such errors (malformed annotation), haddock should try to ignore and continue, instead of just give up.) On the other hand, it would be still better if ghc would have something like -fauto-specialize-all (that is, for all instances that are needed for the current `main' definition) so that I wouldn't have to change the source code at all. I vaguely remember there was a preprocessor (independent of ghc, written by someone else) that did "full specialization"? -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] Re: RFC: DData in hierarchical libraries
A few comments on the DData.Map proposal: * nice work. I might start using it (instead of Data.FiniteMap) just because the function names look better :-) * argument ordering: the existing Data.FiniteMap mostly has f :: FiniteMap -> ... -> FiniteMap while the proposal uses f :: ... -> FiniteMap -> FiniteMap I think the Edison guidelines are quite nice: http://www.haskell.org/ghc/docs/edison/users004.html#toc10 Did you follow them? What exceptions? * types: some functions are not declared at their most general type (I checked by commenting out the decl. and asking ghci) difference :: forall a1 k a. (Ord k) => Map k a1 -> Map k a -> Map k a1 differenceWithKey :: forall a1 k a. (Ord k) => (k -> a1 -> a -> Maybe a1) -> Map k a1 -> Map k a -> Map k a1 intersection :: forall a k a1. (Ord k) => Map k a -> Map k a1 -> Map k a intersectionWith :: forall a k a2 a1. (Ord k) => (a1 -> a2 -> a) -> Map k a1 -> Map k a2 -> Map k a intersectionWithKey :: forall a k a1 a2. (Ord k) => (k -> a2 -> a1 -> a) -> Map k a2 -> Map k a1 -> Map k a isSubsetOfBy :: forall a1 k a. (Ord k) => (a -> a1 -> Bool) -> Map k a -> Map k a1 -> Bool -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Regular Patterns (RE: [Haskell] regular expression syntax)
Niklas Broberg wrote: .. We came up with the idea of HaRP: Haskell Regular Patterns. taking data and patterns as typed trees obviously is the right thing (tm). in principle, such patterns describe regular tree languages (if we disregard nested data types for the moment - they give CF languages) and they could be translated into finite tree automata, which leads to fast matching algorithms (but cost some preprocessing time). you want to always return exactly one match (or none)? this forces you to make ad-hoc decisions (longest/shortest match etc.) when defining the semantics. I think a lot of similar issues are being discussed w.r.t. XML processing. see http://citeseer.nj.nec.com/388107.html and many others. -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] performance tuning Data.FiniteMap
S. Alexander Jacobson wrote: Does FiniteMap used Arrays, Lists, or Algebraic Types? when in doubt, RTFC: http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/libraries/base/Data/FiniteMap.hs?rev=1.17 data FiniteMap key elt = EmptyFM | Branch key elt -- Key and elt stored here IF_GHC(Int#,Int{-STRICT-}) -- Size >= 1 (FiniteMap key elt) -- Children (FiniteMap key elt) the hugs distribution even says where this comes from: This code is derived from that in the paper: \begin{display} S Adams "Efficient sets: a balancing act" Journal of functional programming 3(4) Oct 1993, pp553-562 \end{display} -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] regular expression syntax - perl ain't got nothin on haskell
Per Larsson wrote: But I can't see why the haskell user shouldn't also have access to concise text processing notations, e.g. regular expressions and printf, I was not implying it should be forbidden, rather I meant to give a reason why text processing seems to be less common in typical Haskell programs. > to be used in, e.g. short script-like programs? sure. but why do we need text processing in scripting? because the usual OS shells have `string' as their only data type. we better change that :-) anyone for a fully typed Haskell shell? -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [Haskell] regular expression syntax - perl ain't got nothin on haskell
Per Larsson wrote: > .. I have since long missed some typical text processing functionality in haskell. it is often the case that people process "text" only because they have no better (structured and typed) way of representing their data... -- -- Johannes Waldmann, Tel/Fax: (0341) 3076 6479 / 6480 -- -- http://www.imn.htwk-leipzig.de/~waldmann/ - ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell