unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Tyler Smith <tyler.smith@eku.edu>
To: help-gnu-emacs@gnu.org
Subject: random predicate function
Date: Mon, 13 Dec 2010 09:43:27 -0500	[thread overview]
Message-ID: <87ipyxvils.fsf@guruji.demimonde> (raw)

Hi,

I'm trying to write a function that will randomly sort the paragraphs in
a region. It seems to work ok, except that it doesn't seem very random.
I think the function I'm using to randomly generate true and false
values is sub-optimal. It often generates long strings of 't' or nil,
such that either the paragraph order doesn't change at all for multiple calls
to the function, or it simply reverses the order each time I call it.

Any suggestions welcome! Thanks.

Tyler

Here is the function:

(defun randomize-paragraphs (beg end)
  "Sort paragraphs in region randomly.
Called from a program, there are two arguments:
BEG and END (region to sort)."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (sort-subr nil
		 (function
		  (lambda ()
		    (while (and (not (eobp)) (looking-at paragraph-separate))
		      (forward-line 1))))
		 'forward-paragraph
		 nil
		 nil
		 (lambda (tmp1 tmp2) (if (eq (mod (random) 2) 0)
					 t
				       nil))))))




             reply	other threads:[~2010-12-13 14:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-13 14:43 Tyler Smith [this message]
2010-12-13 15:37 ` random predicate function Gary
2010-12-13 16:08   ` Tyler Smith
2010-12-13 16:16     ` Erik Iverson
2010-12-13 16:50       ` Tyler Smith
     [not found] <mailman.0.1292251427.11097.help-gnu-emacs@gnu.org>
2010-12-13 15:26 ` Pascal J. Bourguignon
2010-12-13 17:16   ` Ted Zlatanov
2010-12-13 17:48     ` Pascal J. Bourguignon
2010-12-15 14:51       ` Ted Zlatanov
2010-12-15 15:20         ` Pascal J. Bourguignon
2010-12-15 16:44           ` Ted Zlatanov
2010-12-15 17:28             ` Pascal J. Bourguignon
2010-12-15 18:39               ` Ted Zlatanov
2010-12-15 18:04             ` Drew Adams
2010-12-13 18:17   ` Tyler Smith
     [not found]   ` <mailman.2.1292264248.1009.help-gnu-emacs@gnu.org>
2010-12-13 18:38     ` Pascal J. Bourguignon
2010-12-13 19:05       ` Tyler Smith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ipyxvils.fsf@guruji.demimonde \
    --to=tyler.smith@eku.edu \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).