나는 한 줄짜리 텍스트 편집기를 만들려고하는 프로그램이있다. 나는이 시점에서 조금 벽에왔다. list
은 left
이고, 하나는 right
입니다. 함수 또는 할 일 목록에서 왼쪽으로 설정할 수 있습니다. left ++ char
여기서 char은 사용자가 입력 한 char입니다. 목록을 수정할 수는 없지만이를 재정의 할 수 있습니까? 이 의사 코드 사전동일한 변수에 변수를 설정하면 수정됩니까?
0
A
답변
2
에서
left = "hello"
in = get user input
left = left ++ in
감사합니다 도움이된다면. 링크가 도움이 될 것입니다 (튜토리얼을 가리킴). 귀하의 예는 다음과 같습니다 :
type Line = State String()
addInput :: String -> Line
addInput inp = do
left <- get
put $ left ++ inp
runState (addInput <user input>) "hello"
그러나 이것은 약간의 모나드를 알아야합니다. 링크의 예를 따르십시오.
+0
addInput inp = modify (++ inp)'로 단축 할 수 있다고 언급했습니다. – leftaroundabout
관련 문제
- 1. macvim의 EDITOR 변수를 설정하면
- 2. 변경된 변수를 동일한 변수에 할당하는 것이 안전합니까?
- 3. 포인터 멤버 변수를 설정하면 제대로
- 4. 게으른 정적 변수를 먼저 설정하면 초기화됩니까?
- 5. cout 문을 추가하면 출력이 수정됩니까?
- 6. 변수를 php 변수에 넣는 echo
- 7. 동일한 변수에 할당하거나 새 변수를 다시 정의합니까? 아에
- 8. ASP.NET에서 동일한 유형의 변수에 세션 변수를 캐스팅 할 수 없습니다.
- 9. 변수에 $ i를 추가하여 동일한 시퀀스 변수를 호출 할 수 있습니까?
- 10. 각 매개 변수에 동일한 매개 변수를 전달하는 대신
- 11. 변수를 변수에 연결하십시오.
- 12. jquery : 변수를 변수에 추가
- 13. 부분 변수에 변수를 전달합니다.
- 14. 변수에 변수를 반향합니다.
- 15. 변수에 변수를 선언 하시겠습니까?
- 16. 출력을 변수에 저장하고 변수에 변수를 사용합니다.
- 17. 변수에 변수가있는 변수를 변수에 저장할 수 있습니까?
- 18. 환경 변수에 env 변수를 연결하십시오.
- 19. Javascript : nodeValue에 변수를 설정하면 작동하지 않습니다.
- 20. 스크립트에서 php.ini 변수를 설정하면 어떤 단점이 있습니까?
- 21. Global.asax에서 세션 변수를 설정하면 AJAX 오류가 발생합니다.
- 22. 변수/변수를 0으로 설정하면 연산자가 누락됩니다.
- 23. iOS에서 IB의 UIScrollView 변수를 설정하면 무응답으로 표시됩니다.
- 24. ZSH에서 환경 변수를 설정하면 예상 번호가 나타납니다.
- 25. glUniform4f가 호출되어 float3 변수를 설정하면 어떻게됩니까?
- 26. 변수를 다른 유형으로 설정하면 SKSpriteNodes가 보이지 않습니다.
- 27. .bashrc 파일에 환경 변수를 설정하면 오류가 발생합니다.
- 28. Python 변수를 JavaScript 변수에 할당
- 29. 선택적 매개 변수를 설정하면 나머지는 기본값 인 nil이됩니다.
- 30. 변수를 지정한 다음 변수에 변수를 사용합니까?
예, 그렇습니다. "그림자"할 수 있습니다. 그러나 새 바인딩이 이전 바인딩과 완전히 별개의 것처럼 보일 것입니다. 새 정의에 다른 이름을 사용하는 것만으로는 할 수없는 섀도 잉 작업으로는 아무 것도 할 수 없습니다. – luqui
"수정"과 "재정의"의 차이점은 무엇입니까? 변수가 값에 바인딩되면 더 이상 변경할 수 없습니다. 그러나 새 변수를 새로운 값으로 정의 할 수 있습니다. 새 변수는 이전 변수와 동일한 이름을 가질 수도 있지만 여전히 새로운 변수입니다. – chi
음,'let left = "new"+ "value"'와 같이'left'를 음영 처리 할 수 있지만'let left = left ++ in'은'left'의 재귀 적 정의를 만듭니다; 값이'left'의 이전 값과'in'을 결합한 새로운'left'를 생성하지 않습니다. – chepner