[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bard Bloom <bard@THEORY.LCS.MIT.EDU>: ANY and ANY?]

**** Forwarded Message Follows ****
Received: by YALE-RING-MAIL-GW via SSMTP ($Revision: 1.19 $) ; Fri Apr  1 01:18:50 1988
Received: from THEORY.LCS.MIT.EDU by ELI.CS.YALE.EDU; Fri, 1 Apr 88 01:07:32 EST
Received: from TOUCAN.LCS.MIT.EDU by THEORY.LCS.MIT.EDU (4.12/4.7); Fri, 1 Apr 88 00:16:02 est
Received: by TOUCAN.LCS.MIT.EDU (4.12/4.7); Thu, 31 Mar 88 23:35:18 est
Date: Thu, 31 Mar 88 23:35:18 est
From: Bard Bloom <bard@THEORY.LCS.MIT.EDU>
Message-Id: <8804010435.AA01539@TOUCAN.LCS.MIT.EDU>
To: slade-stephen@YALE.ARPA
Subject: ANY and ANY?

  (This is for the T mailing list, but I can't find the address)

  T seems to have two functions, called ANY and ANY?, which evidently
behave identically.  Both of them are documented.  Both ANYs take a
predicate and some lists, and call predicate on successive cars of lists,
until it returns true; then the ANY returns true.  If none do, it returns
false.  The two are not EQ?.

  Actually, according to the manual, ANY is a sequential function -- 
it is supposed to do what it actually does.  ANY? "Returns true if any
element of _list_ answers true to _predicate_" -- e.g., if 
  (predicate 'a) diverges
  (predicate 'b) returns true
  (ANY  predicate '(a b a)) should diverge
  (ANY? predicate '(a b a)) should return true
Naturally, ANY? seems to diverge here, despite the manual.
  I personally suspect that the manual isn't serious about the
definition of ANY?.  The rest of the language is sequential, and ANY?
as formally defined seems to require concurrent calculation of
(predicate a) and (predicate b).  Unless perhaps someone added a
parallel-or function to make the language fully abstract with respect
to Scott semantics?  If so, I'd very much like to hear about it: I
work in Scott semantics and it would be wonderful to know that someone
was taking us seriously.

  Or is it just an accident?

-- Bard the \x.gargoyle

**** End of Forwarded Message ****