;This is the ACT-R memory span simulation. It can be made to recall lists of ;lengths 5, 7, and 9 by calling (run5), (run7), and (run9). Please note it ;has not been parameterized to correspond to the Excel programs. (clearall) (wmetype respond-to-cue index length) (wmetype memory-token name parent position) (wmetype ordering first second) (wmetype retrieve parent position list list-position) (wmetype generate item) (wmetype retrieve-plan list length) (sgp :bll .5 :lf 0.5 :le 1 :an nil :rt nil :era t) (setf five (make-array '(5 3) :initial-element 0)) (setf seven (make-array '(7 3) :initial-element 0)) (setf nine (make-array '(9 3) :initial-element 0)) (defun run5 () (addwm (ordering1 isa ordering first first second second) (ordering2 isa ordering first second second third) (ordering3 isa ordering first third second fourth) (ordering4 isa ordering first fourth second fifth) (ordering5 isa ordering first fifth second sixth) (goal1 isa respond-to-cue index list1 length 2) (phrase11 isa memory-token parent list1 position first) (phrase12 isa memory-token parent list1 position second) (item111 isa memory-token parent phrase11 position first name 1) (item112 isa memory-token parent phrase11 position second name 2) (item113 isa memory-token parent phrase11 position third name 3) (item121 isa memory-token parent phrase12 position first name 4) (item122 isa memory-token parent phrase12 position second name 5)) (setgeneralbaselevels (ordering1 30 -100)(ordering2 30 -100)(ordering3 30 -100) (ordering4 30 -100)(ordering5 30 -100) (item111 1 -4)(item112 1 -3)(item113 1 -2) (item121 1 -1)(item122 1 -.001) (phrase11 2 -2)(phrase12 1 -.001)) (wmfocus goal1) (run)) (defun run7 () (addwm (ordering1 isa ordering first first second second) (ordering2 isa ordering first second second third) (ordering3 isa ordering first third second fourth) (ordering4 isa ordering first fourth second fifth) (ordering5 isa ordering first fifth second sixth) (goal1 isa respond-to-cue index list1 length 2) (phrase11 isa memory-token parent list1 position first) (phrase12 isa memory-token parent list1 position second) (item111 isa memory-token parent phrase11 position first name 1) (item112 isa memory-token parent phrase11 position second name 2) (item113 isa memory-token parent phrase11 position third name 3) (item121 isa memory-token parent phrase12 position first name 4) (item122 isa memory-token parent phrase12 position second name 5) (item123 isa memory-token parent phrase12 position third name 6) (item124 isa memory-token parent phrase12 position fourth name 7)) (setgeneralbaselevels (ordering1 30 -100)(ordering2 30 -100)(ordering3 30 -100) (ordering4 30 -100)(ordering5 30 -100) (item111 1 -6)(item112 1 -5)(item113 1 -4) (item121 1 -3)(item122 1 -2) (item123 1 -1)(item124 1 -.001) (phrase11 2 -4)(phrase12 1 -.001)) (wmfocus goal1) (run)) (defun run9 () (addwm (ordering1 isa ordering first first second second) (ordering2 isa ordering first second second third) (ordering3 isa ordering first third second fourth) (ordering4 isa ordering first fourth second fifth) (ordering5 isa ordering first fifth second sixth) (goal1 isa respond-to-cue index list1 length 3) (phrase11 isa memory-token parent list1 position first) (phrase12 isa memory-token parent list1 position second) (phrase13 isa memory-token parent list1 position third) (item111 isa memory-token parent phrase11 position first name 1) (item112 isa memory-token parent phrase11 position second name 2) (item113 isa memory-token parent phrase11 position third name 3) (item121 isa memory-token parent phrase12 position first name 4) (item122 isa memory-token parent phrase12 position second name 5) (item123 isa memory-token parent phrase12 position third name 6) (item131 isa memory-token parent phrase13 position first name 7) (item132 isa memory-token parent phrase13 position second name 8) (item133 isa memory-token parent phrase13 position third name 9)) (setgeneralbaselevels (ordering1 30 -100)(ordering2 30 -100)(ordering3 30 -100) (ordering4 30 -100)(ordering5 30 -100) (item111 1 -8)(item112 1 -7)(item113 1 -6) (item121 1 -5)(item122 1 -4) (item123 1 -3)(item131 1 -2) (item132 1 -1)(item133 1 -.001) (phrase11 2 -6)(phrase12 1 -3)(phrase13 1 -.001)) (wmfocus goal1) (run)) (defvar answer nil) (p start-recall =goal> isa respond-to-cue index =list length =length ==> =newgoal> isa retrieve-plan list =list length =length !eval! (setf answer nil) !focus-on! =newgoal) (parameters start-recall :a .69) (p prepare =goal> isa retrieve-plan length =length - length 1 ==> =goal> length (!eval! (1- =length))) (p prepare-last =goal> isa retrieve-plan length 1 list =list =phrase> isa memory-token position first parent =list ==> =newgoal> isa retrieve parent =phrase position first list =list list-position second !focus-on! =newgoal ) (p get-next =goal> isa retrieve parent =parent position =pos =x> isa memory-token parent =parent position =pos =ordering> isa ordering first =pos second =new ==> =goal> position =new =newgoal> isa generate item =x !push! =newgoal) (parameters get-next :r 1.0) (p next-group =goal> isa retrieve list =lis list-position =pos =x> isa memory-token parent =lis position =pos =ordering> isa ordering first =pos second =new ==> =goal> list-position =new parent =x position first) (parameters next-group :r 0.5) (p done =goal> isa retrieve ==> !pop!) (parameters done :r .25) (p generate-item =goal> isa generate item =item =item> isa memory-token name =key ==> !eval! (setf answer (cons (cons =key *time*) answer)) !output! ("~S" =key) !pop!) (parameters generate-item :a .2)