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

*From*: Willy Schultz <will62794@xxxxxxxxx>*Date*: Mon, 16 Nov 2020 06:09:00 -0800 (PST)*References*: <5f09aa29-391f-49f1-833f-c6200fa2450co@googlegroups.com> <16E42E2A-E445-4194-AC25-859EA488D2C2@gmail.com> <a956a38f-2ecf-4066-b0a7-167a69d400cco@googlegroups.com> <FE4429D3-9599-4769-A361-7E9142307502@gmail.com>

Note that the latest versions of TLC also include a simple built-in REPL for evaluating TLA+ expressions. You can run it with:

You can see a demo here and you can download the latest (nightly) build of the TLC tools from here: https://nightly.tlapl.us/dist/tla2tools.jar.

Will

On Thursday, November 12, 2020 at 2:27:22 AM UTC-5 Stephan Merz wrote:

On 12 Nov 2020, at 04:26, Ashish Negi <thisismy...@xxxxxxxxx> wrote:Q. does `[i \in 1 .. Len(files) |-> files[i].id]` gives back a sequence ?Yes: in TLA+ a sequence is a function with domain 1..n, for some n \in Nat.Q. Is there something like a REPL where i can try different statements of TLA+ to check the output ?You can use TLC to evaluate constant expressions.Is sequence a set or primitive type ?Semantically, all TLA+ values are sets, but there are many values for which it is not specified which sets represent them. These include numbers and functions, and therefore also sequences and records. It is more useful to think of these classes of values as being primitive.Stephan

On Tuesday, 10 November 2020 23:17:42 UTC-8, Stephan Merz wrote:As far as I can tell, your attempt failed because a sequence is a function whereas the construct [x \in S |-> ...] expects a set S. Why not simply[i \in 1 .. Len(files) |-> files[i].id]where `files' is your input sequence?StephanOn 11 Nov 2020, at 06:03, Ashish Negi <thisismy...@xxxxxxxxx> wrote:HiI have a sequence of records with field `id`. I want to get a sequence of all ids from original sequence.My first attempt was to try this :[r \in some_sequence_of_records |-> r.id]"The exception was a java.lang.RuntimeException

: util.Assert$TLCRuntimeException: The domains of formal parameters must be enumerable.

The error occurred when TLC was evaluating the nested

expressions at the following positions:

The error call stack is empty."Q1. Is "some_sequence_of_records" a set with DOMAIN 1..Len(sequence) ?Q2. What is wrong with my first try ?Currently, i am using custom map and filter functions for the sequences.RECURSIVE mapSeq(_,_,_)

mapSeq(seqs, M(_), result) ==

IF seqs = <<>>

THEN result

ELSE mapSeq(Tail(seqs),

M,

Append(result, M(Head(seqs))))

GetAllIds(files) ==

LET getId(r) == r.id

IN mapSeq(files, getId, <<>>)Q3. Is there a better way ?ThanksAshish--

You received this message because you are subscribed to the Google Groups "tlaplus" group.

To unsubscribe from this group and stop receiving emails from it, send an email to tla...@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/5f09aa29-391f-49f1-833f-c6200fa2450co%40googlegroups.com.

--

You received this message because you are subscribed to the Google Groups "tlaplus" group.To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/a956a38f-2ecf-4066-b0a7-167a69d400cco%40googlegroups.com.

You received this message because you are subscribed to the Google Groups "tlaplus" group.

To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+unsubscribe@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/129c41ca-73f4-446f-9a5e-67aac8b91b54n%40googlegroups.com.

**References**:**[tlaplus] How to generate a sequence from another sequence ?***From:*Ashish Negi

**Re: [tlaplus] How to generate a sequence from another sequence ?***From:*Stephan Merz

**Re: [tlaplus] How to generate a sequence from another sequence ?***From:*Ashish Negi

**Re: [tlaplus] How to generate a sequence from another sequence ?***From:*Stephan Merz

- Prev by Date:
**[tlaplus] Source file with non-commercial license** - Next by Date:
**Re: [tlaplus] Source file with non-commercial license** - Previous by thread:
**Re: [tlaplus] How to generate a sequence from another sequence ?** - Next by thread:
**[tlaplus] Assign incremental IDs to sets of functions** - Index(es):