Re: [Factor-talk] Factor packaging for Ubuntu

2014-11-22 Thread Björn Lindqvist
I have just now created new packages for Ubuntu trusty and precise,
based on the git version, which you can download from the same place
as below. It's not a release version, but it works well enough for me.
Just remember that you need to type "factor-lang" to run factor.

2013-08-26 9:45 GMT+02:00 Björn Lindqvist :
> Hello!
>
> I've created a PPA and made an experimental Factor package for Ubuntu:
>
> https://launchpad.net/~bjourne/+archive/factor
>
> The binary name "factor" was already taken by a program in coreutils
> so I had to change it to "factor-run". Please beta test and tell me if
> the package doesn't work. :)
>
>
> --
> mvh/best regards Björn Lindqvist
> http://www.bjornlindqvist.se/



-- 
mvh/best regards Björn Lindqvist

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Factor tutorial

2014-11-22 Thread John Benediktsson
Hi Andrea,

Wow, great contribution!!

Some comments:

You might avoid naming your factorial word "!" or at least make a small
comment to your readers that it shadows the "!" token that is used for
comments in the code (preventing its use as comments).

IN: scratchpad ! a comment
IN: scratchpad : ! ( n -- n ) ;
IN: scratchpad ! not a comment!

One could argue that we should use a more standard "//" or "#" like other
languages, but such is some legacy decision somewhere along the way.  Might
be worth changing at some point.

Also in that section, you might mention the breadth of the standard
library, your ``prod`` word is defined in the ``sequences`` vocabulary as
``product``.  And is possibly more efficient because it uses a binary
reduce that for large numbers keeps more of them smaller for longer,
resulting in less bignum multiplication.

On the syntax section, it might be fun to give an example of using
SYNTAX:.  I have a few on my blog to help give you some ideas:

http://re-factor.blogspot.com/2010/08/fat-arrows.html
http://re-factor.blogspot.com/2014/06/swift-ranges.html
http://re-factor.blogspot.com/2010/07/rolling-dice.html

It's a useful beginner lesson to teach that Factor is "tokens that parse"
and that "{" isn't just some list literal embedded in the language, but
that you can see how it works, change it, or replace it, or build it
yourself as an addon.  A small exception to that might be number and string
literals which right now are built directly into the parser.

On the github.tutorial section, I would also suggest mentioning our editor
support works for vocabularies, so for example after doing
``scaffold-work``, you might just type:

IN: scratchpad "github.tutorial" edit

For new users, this will prompt with a list of editors to choose from
(rather than needing to explicitly USE: it like you do in the tutorial).
After that point, it will open the file directly in the editor.  For words,
it opens the file they are defined in (``\ foo where`` if you're curious
how that works) and tries in most editors to bring the cursor to the proper
line number.

You can also use ``"vocab" edit-tests`` to get to the tests file, ``"vocab"
edit-docs`` to open the documentation file, etc.

When you mention ``boa`` constructors, you might also demonstrate that
these are equivalent (allowing easy generation of constructor words for the
common case):

:  ( title director actors -- movie ) movie boa ;

C:  movie

Since Factor parses tokens between one or more whitespace characters, these
are equivalent if you prefer the second for readability:

TUPLE: band { keyboards string read-only } { guitar string read-only }
  { bass string read-only } { drums string read-only } ;

TUPLE: band
{ keyboards string read-only }
{ guitar string read-only }
{ bass string read-only }
{ drums string read-only } ;

For your later prime example with fry quotations, I'd also provide this
example which uses ``with`` to capture the notion of currying something
under the stack in this use case:

: prime? ( n -- ? ) 2 over sqrt [a,b] [ divisor? ] with any? not ;

Your ``safe-head`` word can be captured instead of using exceptions and
recover, by just doing ``short head`` which mins with length of sequence
(avoiding the exception, unless ``n`` is negative).

Good http examples, I'd also point you to this post which shows some use of
forms and validation:

http://re-factor.blogspot.com/2010/08/hello-web.html

Looks like you've put a lot of effort into this and I love it, great job!
I'm going to make a post linking to this on my blog!

Best,
John.

















On Sat, Nov 22, 2014 at 6:36 AM, Andrea Ferretti 
wrote:

> Hello,
>
> I have written a Factor tutorial, which you can find at
>
> http://andreaferretti.github.io/factor-tutorial/
>
> (source https://github.com/andreaferretti/factor-tutorial )
>
> Factor has a lot of documentation in the listener, but I have tried to
> cover some topics that are present in the official docs, but scattered
> throughout it, so that they were not clear to me at the beginning.
> These include for instance:
>
> - the central concept is function composition, the stack is more of a
> detail
> - how simple is to deploy program and scripts
> - what tools are there: linter, inspector, unit testing support,
> reverse lookup of function uses...
> - what model of multithreading and async I/O are used
> - how to make use of multiple cores
> - in what sense Factor has an object system
>  and more
>
> I was able to answer some of those - especially multithreading -
> thanks to the help I got on this list.
>
> I am sure there are many mistakes - after all, I am still a beginner
> with Factor - and many things that can be improved, both in the
> exposition and in the choice of examples. But I wanted to get it out
> eventually, even with something to be retouched later.
>
> I intend to improve it in the future, and any suggestion 

[Factor-talk] Factor tutorial

2014-11-22 Thread Andrea Ferretti
Hello,

I have written a Factor tutorial, which you can find at

http://andreaferretti.github.io/factor-tutorial/

(source https://github.com/andreaferretti/factor-tutorial )

Factor has a lot of documentation in the listener, but I have tried to
cover some topics that are present in the official docs, but scattered
throughout it, so that they were not clear to me at the beginning.
These include for instance:

- the central concept is function composition, the stack is more of a detail
- how simple is to deploy program and scripts
- what tools are there: linter, inspector, unit testing support,
reverse lookup of function uses...
- what model of multithreading and async I/O are used
- how to make use of multiple cores
- in what sense Factor has an object system
 and more

I was able to answer some of those - especially multithreading -
thanks to the help I got on this list.

I am sure there are many mistakes - after all, I am still a beginner
with Factor - and many things that can be improved, both in the
exposition and in the choice of examples. But I wanted to get it out
eventually, even with something to be retouched later.

I intend to improve it in the future, and any suggestion is welcome -
or even better, you can file pull requests!

Best,
Andrea

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk