<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.lisp.qi">
    <title>gmane.lisp.qi</title>
    <link>http://blog.gmane.org/gmane.lisp.qi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5428"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5426"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5424"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5420"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5419"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5418"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5416"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5413"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5401"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5397"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5392"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5388"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5386"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5384"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5380"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5379"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5368"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5364"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5363"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.lisp.qi/5355"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5428">
    <title>Shen under Python downloads are up</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5428</link>
    <description>&lt;pre&gt;Both the Python ports are now on the download page.

http://www.shenlanguage.org/Download/download.html

Mark

&lt;/pre&gt;</description>
    <dc:creator>Mark Tarver</dc:creator>
    <dc:date>2013-05-22T09:06:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5426">
    <title>can do?</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5426</link>
    <description>&lt;pre&gt;http://stackoverflow.com/questions/3037643/typed-metaprogramming-languages

&lt;/pre&gt;</description>
    <dc:creator>Raoul Duke</dc:creator>
    <dc:date>2013-05-21T23:25:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5424">
    <title>some array functions</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5424</link>
    <description>&lt;pre&gt;(define it0
     N -&amp;gt; (it N []))

(define it 
    0 L -&amp;gt; L
    N L -&amp;gt; (it (- N 1) (cons (- N 1) L)))


(define timesL
   _ [] -&amp;gt; []
   [X|Y] [P|Q] -&amp;gt; (cons (* X P) (timesL Y Q)))

(define addL
   _ [] -&amp;gt; []
   [X|Y] [P|Q] -&amp;gt; (cons (+ X P) (addL Y Q)))


(define add0
    [] N -&amp;gt; N
   [X|Y] N -&amp;gt; (add0 Y (+ N X)))

(define adds
     L -&amp;gt; (add0 L 0))

(define take
   0 _ -&amp;gt; []
   N [X|Y] -&amp;gt; [X|(take (- N 1) Y)])

(define drop
      0 L -&amp;gt; L
    N [X|Y] -&amp;gt; (drop (- N 1) Y))

(define fromto 
    N M L -&amp;gt; (take (- M N) (drop N L)))

(define abs
   N -&amp;gt; (* N -1) where (&amp;lt; N 0)
   N -&amp;gt; N)

(define dropflast
   N L -&amp;gt; (take (- (length L) (abs N)) L))

(define droplast
      [] -&amp;gt; []
     [A] -&amp;gt; A
   [X|Y] -&amp;gt; (if (not (= (tail Y) [])) (droplast Y) (head Y)))

(define from
   0 L -&amp;gt; (head L)
   N [X|Y] -&amp;gt; (from (- N 1) Y))

(define fromp
   [] _ -&amp;gt; []
   [X|Y] L -&amp;gt;  (cons (from X L) (fromp Y L)))

(define amend
    N M L -&amp;gt; (append (take N L) (cons M (drop (+ N 1) L))))

(define tie
        _ 0 -&amp;gt; []
        L N -&amp;gt; (append L (tie L (- N 1))))

(define makearray1
       0 N L -&amp;gt; (append (reverse N) [L])
       M N L -&amp;gt; (if (&amp;lt; M (length L)) (makearray1 M (cons (take M L) N) 
(drop M L))
                  (makearray1 0 N L)))
                     
(define makearray
        M L -&amp;gt; (makearray1 M [] L))

(define k -&amp;gt; (makearray 10 (makearray 10 (it0 200))))

(define q -&amp;gt; (tie (k) 5)) 

(define r -&amp;gt; (tie (q) 3)) 


\* (it0 20) *\

\* (addL (it0 20) (it0 20)) *\

\* (adds (it0 100)) *\

\* (take 5 (it0 20)) *\

\* (drop 5 (it0 20)) *\

\* (fromto 5 10 (it0 20)) *\

\* (dropflast 2 (it0 10)) *\

\* (droplast (it0 10)) *\

\* (fromp [2 3 1] [a b c d e]) *\

\* (amend 2 a [1 2 3 4]) *\

\* (makearray 5 (it0 20)) *\

\* (k) *\

\* (q) *\

\* (r) *\

&lt;/pre&gt;</description>
    <dc:creator>newbie</dc:creator>
    <dc:date>2013-05-21T08:17:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5420">
    <title>Bug fix release for shen-on-java</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5420</link>
    <description>&lt;pre&gt;The bug reported here:
https://groups.google.com/d/msg/qilang/mxcG2TNTTv0/IfrT9i2mID8J

Has been fixed and a new release uploaded.

&lt;/pre&gt;</description>
    <dc:creator>joel-mS8KwmfSQcZBDgjK7y7TUQ&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2013-05-17T03:34:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5419">
    <title>how to do native calls in shen-js</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5419</link>
    <description>&lt;pre&gt;Hi,

How can I call a native JS function from shen-js?

Răzvan

&lt;/pre&gt;</description>
    <dc:creator>Răzvan Rotaru</dc:creator>
    <dc:date>2013-05-16T20:52:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5418">
    <title>wish i could code this up in shen some day as a nice demo</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5418</link>
    <description>&lt;pre&gt;http://okmij.org/ftp/meta-programming/HPC.html#stencil
care of
http://lambda-the-ultimate.org/node/4739

&lt;/pre&gt;</description>
    <dc:creator>Raoul Duke</dc:creator>
    <dc:date>2013-05-16T18:10:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5416">
    <title>First release of PyShen - a port of Shen in Python</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5416</link>
    <description>&lt;pre&gt;Hello,

I'm pleased to announce that we have released a new port of Shen in pure 
Python. This port supports Shen version 11 and it passes the Shen test 
suite. 

The implementation of the parser and compiler follows the ShenRuby port of 
Greg Spurrier. The compiler generates directly Python bytecode with the 
Python AST module.

The source code is available on GitHub at https://github.com/yminer/pyshen . 
With Python installed you can launch the repl with:

$ python
Shen 2010, copyright (C) 2010 Mark Tarver
released under the Shen license
www.shenlanguage.org, version 11
running under Python, implementation: pyshen
port 0.135 ported by Matthieu Lagacherie and Yannick Drant

(0-)

Any questions, bug reports, and other feedback on this release are welcomed.

Regards,

Matthieu

&lt;/pre&gt;</description>
    <dc:creator>Matthieu Lagacherie</dc:creator>
    <dc:date>2013-05-14T20:15:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5413">
    <title>development setup for running in the browser</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5413</link>
    <description>&lt;pre&gt;Hi,

I recently discovered Shen and intend to play with the Javascript version. 
I'm interested in GUI stuff in the browser, and I need a setup that makes 
development quick and easy. I wish for a REPL, but I can also live with 
edit &amp;amp; refresh page. Here are my questions:

1/ what editor do you recommend? are there extensions for shen in one of 
the popular editor? (emacs mode, vim plugin, etc.)
2/ Is there a way to have a REPL in the browser? (i.e. edit with the 
editor, evaluate and display results in the browser)
3/ In order to have the second setup (edit &amp;amp; refresh page), I need a way to 
automatically compile to javascript when I refresh the page. Has anybody 
already done this (or something similar)?

Any other suggestions are very welcome. Thanks.

Răzvan Rotaru

&lt;/pre&gt;</description>
    <dc:creator>Răzvan Rotaru</dc:creator>
    <dc:date>2013-05-14T14:03:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5401">
    <title>Shen Ruby - making "wrapped ruby functions" available from within the shen repl</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5401</link>
    <description>&lt;pre&gt;Hi Greg, 

As you specified on the webpage https://github.com/gregspurrier/shen-ruby the 
shen environment can be extended with functions written in Ruby. This 
functionality turned out to be quite useful. For example in "Ruby Program 
2" in https://groups.google.com/forum/#!msg/qilang/aOdyQQJYR5w/3Ep-K7k37ZUJ I 
used the Ruby modulo function in a Shen program in order to achieve 
speedup. In the example in 
https://groups.google.com/forum/#!msg/qilang/lFWmNMQydD0/thpnLIrvA_MJ I 
used the Ruby "rand" function from within Shen (since Shen does not have 
its own random number generator).

My question is whether it is possible to use the wrapped Ruby functions 
from within the srrepl? If not, would it be possible to allow these wrapped 
functions to be accessible from within the Repl, please? Thanks.

&lt;/pre&gt;</description>
    <dc:creator>Artella Coding</dc:creator>
    <dc:date>2013-05-12T16:57:01</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5397">
    <title>Finding the type signature of a function</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5397</link>
    <description>&lt;pre&gt;Hi, how do I find the type signature of a function? I was looking to find 
out what the type signature of the "print" function was. Thanks.

&lt;/pre&gt;</description>
    <dc:creator>Artella Coding</dc:creator>
    <dc:date>2013-05-12T15:23:37</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5392">
    <title>random numbers in shen</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5392</link>
    <description>&lt;pre&gt;Hi all,

I'm new to shen. How can I generate random numbers?

Thanks!

&lt;/pre&gt;</description>
    <dc:creator>dani</dc:creator>
    <dc:date>2013-05-11T19:55:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5388">
    <title>Function descriptions in Shen (a simple macro)</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5388</link>
    <description>&lt;pre&gt;Just playing a little with Shen and defined a macro that allow us to
define function with textual description (something similar to Common
Lisp an Python).

The macro is here: http://pastebin.com/dLJW5Rrr

While the macro does what I want, I'm still little unhappy with this
triple cons in line 15. I know there must be some more elegant way to
express this, but cannot find it.
Any help?

Racket Noob

&lt;/pre&gt;</description>
    <dc:creator>Racket Noob</dc:creator>
    <dc:date>2013-05-11T18:24:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5386">
    <title>Programs in TBOS &amp; function subst</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5386</link>
    <description>&lt;pre&gt;I apologize for bothering you, but I can't find the programs from TBoS
on Shen website.The book says: "All the programs in this book are
available from the Shen web site and they are cited with a (*)
indicating the path to the relevant program", but I cannot find the
link.

Second, on the page 151 of TBoS, in the body of function replace-anon-
calls, there's a call to the function subst. subst isn't listed
nowhere in the book nor in Appendix A , but Shen still "recognizes"
subst. No description of subst anywhere in the book.




&lt;/pre&gt;</description>
    <dc:creator>Racket Noob</dc:creator>
    <dc:date>2013-05-11T12:46:47</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5384">
    <title>Shen 11</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5384</link>
    <description>&lt;pre&gt;Shen 11 is up; the missing Native directory bug reported by deech is
fixed.  This version includes the facility to generate type
annotations in the KL code.

Documentation is here.

http://www.shenlanguage.org/Documentation/shendoc.htm#Type
declarations

Mark

&lt;/pre&gt;</description>
    <dc:creator>Mark Tarver</dc:creator>
    <dc:date>2013-05-11T07:18:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5380">
    <title>Official libraries in shen-libs.</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5380</link>
    <description>&lt;pre&gt;Hello.

Official libraries[1] are now in shen-libs[2] with added modulesys[3]
support. That means if your Shen environment is modulesys aware then you
can load those libraries by direct `use-modules` call

    (use-modules [maths strings calendar])

or via dependencies mechanism:

    \* in Your-library/module.shen *\
    (register-module [[name: Your-library]
                      [depends: maths calendar vectors-mt]    \\ &amp;lt;----
                      [load: "your-library-1.shen"
                             "your-library-2.shen"]])

Note: There is already `vectors` library in [2] so `vectors` from [1] is
      renamed to `vectors-mt`.

1. http://shenlanguage.org/library.html
2. https://github.com/vasil-sd/shen-libs
3. https://github.com/vasil-sd/shen-libs/wiki/Modules

&lt;/pre&gt;</description>
    <dc:creator>Ramil Farkhshatov</dc:creator>
    <dc:date>2013-05-10T09:04:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5379">
    <title>the type 'sleeping gene' is woken up in version 11</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5379</link>
    <description>&lt;pre&gt;When Shen was first issued I included a primitive 'type' that gave the
type of an argument.

http://www.shenlanguage.org/Documentation/shendoc.htm#Type
declarations

This was a 'sleeping gene' in Shen - I intended to make use of it
later in the development and the later has come about in the fullness
of time.

In version 11 I've linked this to the type checker so that these
declarations are inserted into the KL on the basis of the results of
the type checker.

I'll spell out how this can be used in the upgrade to Shendoc, but
basically all I want to say here is that *whether* this information is
utilised to improve performance is at the discretion of the porter.

Mark

&lt;/pre&gt;</description>
    <dc:creator>Mark Tarver</dc:creator>
    <dc:date>2013-05-09T21:48:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5368">
    <title>Standalone Shen?</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5368</link>
    <description>&lt;pre&gt;Are there any plans to allow Shen to compile and execute its own code, 
instead of having to piggyback off of other languages?

&lt;/pre&gt;</description>
    <dc:creator>Nobody</dc:creator>
    <dc:date>2013-05-04T18:12:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5364">
    <title>Slides from my Shen talk</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5364</link>
    <description>&lt;pre&gt;Hi all,
I presented on Shen at a local user group [1] here in St. Louis. To support 
the talk I wrote a toy concurrent vending machine [2] to go along with the 
slides [3]. Shen was generally well received.
Thanks!
[1] lambdalounge.org
[2] https://github.com/deech/ShenVendingMachine
[3] 
https://github.com/deech/ShenVendingMachine/blob/master/Talk.pdf?raw=true

&lt;/pre&gt;</description>
    <dc:creator>deech</dc:creator>
    <dc:date>2013-05-03T12:55:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5363">
    <title>include-all-but bug</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5363</link>
    <description>&lt;pre&gt;`include-all-but` doesn't seem to work correctly:
(datatype as
  __________
  a : blah-a;)
(datatype bs
  __________
  b : blah-b;)
(datatype cs
  ___________
  c : blah-c;)

(16-) type#as
type#bs
type#cs

run time: 0.03200000151991844 secs
loaded

(17-) (include-all-but [type#as])
[type#cs type#bs type#as]

Thanks!
-deech

&lt;/pre&gt;</description>
    <dc:creator>deech</dc:creator>
    <dc:date>2013-05-03T13:01:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5355">
    <title>Issue with double underline sequence</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5355</link>
    <description>&lt;pre&gt;Hi all,
I want to type a global variable with one type and use it as another. 
Here's an example:

(tc -)
(set *test* [1 2 3])

(tc +)

(datatype numbers
  
   _______________
   (value *test*) : numbers

   X : (list number)
   =============
   X : numbers
)


Here I'm saying that the global variable *test* is of type `numbers`, and 
that if something can be shown to be of type `numbers` replace that with 
the assumption that it is also of type `(list number)`. However this 
doesn't work:

(1 +) (value *test*)
[ 1 2 3 ] : numbers

(2 +) (head (value *test*))
type error

However flipping the premise and conclusion seems to make it work, so if I 
replace the second sequent with:

X : numbers
==========
X : (list numbers)

(1 +) (value *test*)
[1 2 3] : numbers

(2 +) (head (value *test*))
1 : number


Am I thinking about this wrong? I thought the double underline meant that 
premise and conclusion were interchangeable.

Thanks!
-deech

&lt;/pre&gt;</description>
    <dc:creator>deech</dc:creator>
    <dc:date>2013-04-30T18:09:47</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.lisp.qi/5343">
    <title>Shen-py</title>
    <link>http://comments.gmane.org/gmane.lisp.qi/5343</link>
    <description>&lt;pre&gt;Hello.

I've just released Python version of Shen[1] which is a showcase of my
KLVM translator. In current state Shen-py is huge and unbearably slow.
Also keep in mind that I haven't written Python before. But it seems to
work.

Running
-------
Go to directory where `shen.py` is and type

    python -m shen

If you imported shen module from Python repl you can start Shen repl via

    shen.repl()

Python integration
------------------
To define a Shen function from Python use shen.defun construct:

    shen.defun("plus", 2, lambda: shen.reg[1] + shen.reg[2])

where first argument is the function's name, second is the number of
arguments, and third is a function that takes zero arguments. In that
function passed arguments are accessed via shen.reg array.

To load Python file from Shen use `shenpy.load` function.

About KLVM Translator
---------------------
It translates KL to a some VM language suitable for further translation
to target languages. It takes care of
  - TCO,
  - lambdas,
  - closures,
  - exception handling,
  - partial application.

So it needs just GC, vectors, function pointers and eval (till I finish
KLVM evaluator) in target language. Also, it's relatively simple to add
green threads support.

1. https://github.com/gravicappa/shen-py

&lt;/pre&gt;</description>
    <dc:creator>Ramil Farkhshatov</dc:creator>
    <dc:date>2013-04-29T18:32:58</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.qi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.qi</link>
  </textinput>
</rdf:RDF>
