This article applies to:
Use Nested Lists to implement experiment designs with complex stimuli sampling requirements. This article describes common Nested Lists designs.
Use the Nested Lists feature to select one more sets of Attributes independently. When the Nested list column is defined, E-Prime first samples a row from the Parent List and then samples a row from the Nested List. Consider the following:
In this example, E-Prime first samples a row from the Parent List (named "NestedTrialList") and assigns values to the attributes Stim and CorrectResponse. E-Prime then samples a row from Nested List (named "ITILIst") and assigns a value to the attribute ITI. The "Order" property on each list determines how rows are sampled; therefore the Nested List's sampling order is independent of the Parent List's sampling order.
We recommend adding an attribute to the Parent List to store the attribute values from the Nested List. In this example, the Parent List assigns the attribute ITIDur to the value of the attribute ITI. Any object on the NestedTrialProc can refer to the attribute ITI, so the NestedTrialList is not required to include an attribute that references ITI. However, doing so makes the source of each attribute defined for the trials clear.
We also recommend disabling logging for the Nested List Attribute(s) to eliminate redundant information in the data file. This is one of the few instances where we advise against logging all values on a List.
the example above selects a single attribute ("ITI") from a single Nested List ("ITIList"). To implement more complex designs:
- Enter a comma-separated series of list names to sample from more than one Nested List simultaneously.
- Use Colon Syntax to select more than one row from the Nested List. For example, use Colon Syntax to select multiple display locations on each trial when presenting multiple stimuli in random locations on each trial. See Colon Syntax  for more information on Colon Syntax.
The Run method does not execute on a Nested List. As a result, E-Prime does not apply the Reset Sampling and Exit List properties when sampling from a Nested List. If previously-selected rows need to be returned to the pool of available stimuli before all of the rows have been selected on a Nested List, then call the Reset method in InLine script.
See the following Sample and E-Prime 3 Experiment Library experiments for examples of using Nested Lists:
- Inter-trial Interval  – The first block in this sample experiment illustrates how to select an attribute independently from a Nested List. Use this sample to select an attribute, such as a jitter duration, independently from other trial variables.
- Iowa Gambling Task (IGT)  – This sample illustrates the use of colon syntax to select more than one attribute from a Nested List. It also illustrates how to sample using different orders on the parent and nested list.
- Digit-Span Forward Task  – This sample combines Nested Lists with user-written script to present a multi-block digit span task where each block selects a different number of exemplars from the Nested List.
- Trail Making Task  - This sample experiment uses Colon Syntax to assign positions and text for each button.
Counterbalancing Using Nested Lists
The examples above select one or more trial-level attributes independently. Nested Lists can also be used to define the List being sampled from in a block or session, such as when counterbalancing the order in which different sets of stimuli are presented.
To control the List being sampled from during a block of trials, first create different Lists of stimuli and place in the Unreferenced area of the Experiment Struture view. Next create a block-level List with an attribute that defines the List name to be sampled from for the block condition. Finally enter this block-level attribute in the Nested column of the trial-level List. At runtime, the Nested attribute resolves to one of the Unreferenced List objects and therefore determines which List is sampled from for the current set of trials. See Counterbalance Conditions  for an example of this technique.
This technique can be expanded upon to implement more complex designs such as a Latin Square. Consider the example of a Counterbalanced Latin Square Design where participants cycle through factors of a condition in specific orders such as (Factor1, Factor2, Factor3), (Factor2, Factor3, Factor1), or (Factor3, Factor1, Factor2). For such designs, define multiple attributes on the Block List, one for each block to be presented.